.pyx文件的未知文件类型错误

时间:2011-07-27 14:28:02

标签: python

我正在尝试构建一个包含* .pyx文件的Python包(pyregion),并且在构建过程中会出现错误。检查以下输出:

$ python setup.py build
running build
running build_py
creating build
creating build/lib.macosx-10.5-x86_64-2.7
....
running build_ext
building 'pyregion._region_filter' extension
C compiler: gcc -fno-strict-aliasing -fno-common -dynamic -arch x86_64 -DNDEBUG -g -O3 -arch x86_64

error: unknown file type '.pyx' (from 'src/_region_filter.pyx')

关于问题的任何想法?需要注意的是,我在OSX上使用了Enthought构建的Python(7.1)和最新的Xcode(4.1)。

干杯

5 个答案:

答案 0 :(得分:6)

应该使用Pyrex将.pyx编译为C,然后编译为目标代码。检查发行版中是否存在src/_region_filter.c文件并破解setup.py脚本以构建该文件。 (另外,请考虑filing a bug report,因为这不应该发生。)

答案 1 :(得分:3)

首先安装pyrex,它会起作用。

执行以下操作: sudo pip install pyrex

答案 2 :(得分:0)

我通过使用cython获得了相同的错误,但我通过更改解决了它

cmdclass = {'build_ext ': build_ext },

cmdclass = {'build_ext': build_ext },

您可能没有注意到'build_ext '背后的多余空白字符。

答案 3 :(得分:0)

我自己为您提供的错误消息的解决方案:在*.pyx脚本中对您的setup.py文件进行Cython化

from distutils.core import setup
from Cython.Build import cythonize
...
cythonised_files = cythonize("src/*.pyx")

(我尝试安装Pyrex,但结果却出现了关于无法识别的字符的错误)

此处有更多详情:http://docs.cython.org/src/userguide/source_files_and_compilation.html

答案 4 :(得分:0)

对我来说,在尝试安装 pyFFTW 时,解决此问题的唯一方法是首先通过 Cython 安装 pip。另见https://github.com/pyFFTW/pyFFTW/issues/252