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

Python .pyx文件的未知文件类型错误,python,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: g

我试图构建一个包含*.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上使用的是Python(7.1)的Enthound构建,并使用了最新的Xcode(4.1)


Cheers

应该使用Pyrex将
.pyx
编译成C,然后再编译成目标代码。检查发行版中是否存在
src/\u region\u filter.c
文件,并修改
setup.py
脚本以生成该文件。(也请考虑,因为这不应该发生。)< /P> < p>首先安装Pyrx,它会起作用。 请执行以下操作:
sudo-pip-install-pyrex

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

cmdclass = {'build_ext ': build_ext },


您可能没有注意到,
'build\u ext'

后面有多余的空白字符,这是我对您遇到的同一错误消息的解决方案:在
setup.py
脚本中对
*.pyx
文件进行Cythonize

from distutils.core import setup
from Cython.Build import cythonize
...
cythonised_files = cythonize("src/*.pyx")
(我尝试安装Pyrex,但结果却出现了关于无法识别字符的错误)


此处的进一步详细信息:

对于我来说,在尝试安装
pyFFTW
时,解决此问题的唯一方法是首先通过
pip
安装
Cython
。另请参见。

最近可能是Cython而不是Pyrex,但无论如何+1@delnan:不,Pyrex,看看它。啊,好吧,我没想到一个这么小的项目在Cython取代Pyrex之前已经有足够的历史了。@larsmans,你的建议很成功。编辑setup.py以删除对.pyx文件的任何提及,并将其重定向到.c文件。编译并运行。谢谢这是谷歌上第一次点击“未知文件类型”.pyx'。。。我还试图安装比利牛斯江。干得好。这似乎不正确。唯一可用的包是
Pyrex
(大写),其包定义似乎已被破坏。
from distutils.core import setup
from Cython.Build import cythonize
...
cythonised_files = cythonize("src/*.pyx")