如何解决错误“编译Cython文件错误”错误?

问题描述:

我正在尝试关注此basic cython tutorial。在我的目录我已经
- > __ init__.py
- > hello.pyx
- > setup.py如何解决错误“编译Cython文件错误”错误?

Iniside hello.pyx-

print "Hello World" 

内部setup.py

from distutils.core import setup 
from Cython.Build import cythonize 
setup(ext_modules = cythonize("hello.pyx")) 

当我exceute 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和其他)。但从那时起,它就无法工作,并给出了上述错误。

我已经在mingw installed using conda

尝试从目录中删除__init__.py。出于某种原因,在编译时混淆了cython。

您也可以考虑使用pyximport扩展,如: import pyximport; pyximport.install(),然后import your_module(好像它是一个正常的.py),如果你只是想从普通的Python文件导入.pyx文件。 (在后一种情况下,__init__.py不必删除。)