2011-07-27 53 views
8

我想構建一個包含* .pyx文件的Python包(pyregion),並且在構建過程中出現錯誤。檢查出下面的輸出:與.pyx文件的未知文件類型錯誤

$ 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') 

有關這個問題可能的任何想法?需要注意的是,我在最新的Xcode(4.1)上使用OSX上的Enthought build(7.1)。

乾杯

+0

這是谷歌的第一次打擊「未知文件類型」.pyx'「...我也試圖安裝pyregion。做得好。 – keflavich

回答

6

.pyx應應當編譯至C和Pyrex然後編譯爲目標代碼。檢查發行版中是否存在src/_region_filter.c文件,並修改setup.py腳本以構建該文件。 (另外,考慮filing a bug report,因爲這不應該發生。)

+0

可能是Cython而不是Pyrex,但無論如何+1 – delnan

+1

@delnan:不,Pyrex,請參閱['setup.py'](https://github.com/leejjoon/pyregion/blob/master/setup.py )。 –

+0

好吧,沒有計算出一個項目,小到Cython取代Pyrex之前已經有足夠的時間了。 – delnan

3

首先安裝pyrex,它會工作。

執行以下操作: 須藤PIP安裝耐熱玻璃

0

我用用Cython得到同樣的錯誤,但我作爲您可以通過改變

cmdclass = {'build_ext ': build_ext }, 

cmdclass = {'build_ext': build_ext }, 

解決它沒有注意到,在'build_ext '後面的冗餘空白字符。

0

我自己的解決方案,你有同樣的錯誤信息:Cythonize在setup.py腳本

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

*.pyx文件(我嘗試安裝耐熱玻璃,但結束了有關無法識別的字符錯誤代替)

進一步的細節在這裏:http://docs.cython.org/src/userguide/source_files_and_compilation.html