我只是撿起Cython。我正在使用它在我的Python項目中構建一個核心庫。目前,我已經配置了一個setup.py
文件,distutils
和正在運行以下命令時,我要重新編譯用Cython文件:我可以配置pydev自動編譯cython文件嗎?
python ./setup.py build_ext --inplace
不過,我經常忘記。我喜歡每次編輯/保存時Eclipse如何自動爲Java創建類文件。是否可以爲PyDev,Eclipse或其他聰明的方式配置類似的行爲?
我只是撿起Cython。我正在使用它在我的Python項目中構建一個核心庫。目前,我已經配置了一個setup.py
文件,distutils
和正在運行以下命令時,我要重新編譯用Cython文件:我可以配置pydev自動編譯cython文件嗎?
python ./setup.py build_ext --inplace
不過,我經常忘記。我喜歡每次編輯/保存時Eclipse如何自動爲Java創建類文件。是否可以爲PyDev,Eclipse或其他聰明的方式配置類似的行爲?
現在有在PyDev的任何特殊支持自動編譯用Cython文件時,他們改變了......如果你願意,你可以創建一個外部建設者:
右鍵單擊項目>屬性>建設者>新建>程序,然後將該程序配置爲具有作爲參數運行的模塊的python,並接收$ {build_files}變量作爲參數。
您應該檢查一些更改的文件是否爲.pyx文件,如果是,請調用該文件的實際生成命令 - 也可能是依賴關係。
您可以用Cython在你的基地PYTHONPATH調用pyximport,即使它需要一些安裝細節(例如,在Windows下,你的MinGW的位置),用「神奇」 sitecustomize.py編譯自動獲取,這裏有一個例子:
import pyximport
import os
import numpy
#import cython
import Cython.Compiler.Options as Options
Options.cimport_from_pyx = True
if os.name == 'nt':
if os.environ.has_key('CPATH'):
os.environ['CPATH'] = os.environ['CPATH'] + numpy.get_include()
else:
os.environ['CPATH'] = numpy.get_include()
# XXX: we're assuming that MinGW is installed in C:\MinGW (default)
if os.environ.has_key('PATH'):
os.environ['PATH'] = os.environ['PATH'] + ';C:\MinGW\bin'
else:
os.environ['PATH'] = 'C:\MinGW\bin'
mingw_setup_args = { 'options': { 'build_ext': { 'compiler': 'mingw32' } } }
pyximport.install(setup_args=mingw_setup_args)
elif os.name == 'posix':
if os.environ.has_key('CFLAGS'):
os.environ['CFLAGS'] = os.environ['CFLAGS'] + ' -I' + numpy.get_include()
else:
os.environ['CFLAGS'] = ' -I' + numpy.get_include()
pyximport.install()
pyximport.DEBUG_IMPORT = True
作爲一個方面說明,如果你在windows下,請記住你的cython必須是slightly modified才能使用mingw。
你也應該打電話給你的文件* .pyx這個工作。另一個建議:你應該使用cython「pure python」syntax,以便Pydev編輯器不會抱怨。
雖然有http://cydev.blogspot.com/2011/10/pydev-cython.html – fabrizioM