2011-11-28 124 views
5

我只是撿起Cython。我正在使用它在我的Python項目中構建一個核心庫。目前,我已經配置了一個setup.py文件,distutils和正在運行以下命令時,我要重新編譯用Cython文件:我可以配置pydev自動編譯cython文件嗎?

python ./setup.py build_ext --inplace 

不過,我經常忘記。我喜歡每次編輯/保存時Eclipse如何自動爲Java創建類文件。是否可以爲PyDev,Eclipse或其他聰明的方式配置類似的行爲?

回答

5

現在有在PyDev的任何特殊支持自動編譯用Cython文件時,他們改變了......如果你願意,你可以創建一個外部建設者:

右鍵單擊項目>屬性>建設者>新建>程序,然後將該程序配置爲具有作爲參數運行的模塊的python,並接收$ {build_files}變量作爲參數。

您應該檢查一些更改的文件是否爲.pyx文件,如果是,請調用該文件的實際生成命令 - 也可能是依賴關係。

+0

雖然有http://cydev.blogspot.com/2011/10/pydev-cython.html – fabrizioM

1

您可以用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編輯器不會抱怨。

相關問題