我正在尝试关注此basic cython tutorial。在我的目录中我
- > __ init__.py
- > hello.pyx
- > setup.py
Iniside hello.pyx-
print "Hello World"
在setup.py中
from distutils.core import setup
from Cython.Build import cythonize
setup(ext_modules = cythonize("hello.pyx"))
当我偏爱python setup.py build_ext --inplace
时
我收到了这个错误 -
F:\bots\cython>python setup.py build_ext --inplace
Compiling hello.pyx because it changed.
Cythonizing hello.pyx
Error compiling Cython file:
------------------------------------------------------------
...
^
------------------------------------------------------------
cython:0:0: cython.hello is not available
Traceback (most recent call last):
File "setup.py", line 5, in <module>
ext_modules = cythonize("hello.pyx")
File "C:\Anaconda2\lib\site-packages\Cython\Build\Dependencies.py", line 778,in cythonize
cythonize_one(*args[1:])
File "C:\Anaconda2\lib\site-packages\Cython\Build\Dependencies.py", line 895, in cythonize_one
raise CompileError(None, pyx_file)
Cython.Compiler.Errors.CompileError: hello.pyx
它工作了一次,它也生成了hello.pyd但在此之后我使用conda安装了几个包(tensorflow和其他)。但从那以后它就不起作用而且给出了上述错误。
答案 0 :(得分:0)
尝试从该目录中删除__init__.py
。出于某种原因,在尝试编译时会让cython感到困惑。
您还可以考虑使用pyximport扩展名,例如:
如果您只想从普通的python文件导入.pyx文件,请import pyximport; pyximport.install()
,然后import your_module
(就像它是正常的.py一样)。 (在后一种情况下,__init__.py
不必删除。)