我正在尝试遵循这份关于使用pyx、pxd和cimport创建和使用扩展类型的教程。
当在终端编译Cython文件时,我遇到了一个错误,但不知道如何纠正:在pyx文件中,
当在终端编译Cython文件时,我遇到了一个错误,但不知道如何纠正:在pyx文件中,
cdef class CythonClass:
被指定为错误行。File "/Library/Python/2.7/site-packages/Cython/Build/Dependencies.py", line 1056, in cythonize_one
raise CompileError(None, pyx_file)
Cython.Compiler.Errors.CompileError: CythonClass.pyx
我正在使用Cython .25版本(并尝试了其他版本,每个版本都通过pip install cython
安装)在MacOS Sierra上。Python的版本是2.7.10。
按照建议,我安装了gcc(Xcode 8.2命令行工具),但仍然收到错误信息。
文件内容:
pxd:
cdef class CythonClass:
cdef:
list list1
dict d1, d2, d3, d4, d5, d6
pyx:
cdef class CythonClass:
def __init__(self):
self.list1 = []
self.d1 = {}
self.d2 = {}
self.d3 = {}
self.d4 = {}
self.d5 = {}
self.d6 = {}
setup.py(在终端通过python setup.py build_ext --inplace
调用):
from distutils.core import setup
from Cython.Build import cythonize
setup(ext_modules = cythonize(["CythonClass.pyx"]))
目前至少,我会尝试编译而不使用pxd文件,因为扩展类型的编译已经通过了。然而,导入扩展类型的主函数没有编译(出现错误:extTypeName不是类型标识符
)。