2015-07-21 74 views
3

我需要對scikit-learn進行一些修改,包括對cython代碼的更改。用於修改大型cython項目的工作流程

我以前沒有在cython上工作過,所以可以做一些指導 - 到目前爲止,我已經獲得了所有依賴關係,並且使用了python virtualenv,並克隆並安裝了sklearn git。

現在,修改.pyx文件的好工作流程是什麼?我應該修改並重新安裝以查看效果嗎?或者建造呢?

有什麼辦法可以避免重新編譯所有未更改的東西嗎?

我聽說過import pyximport; pyximport.install(),但對我來說,這會拋出一個編譯錯誤與sklearn - >有沒有一種方法來確保它使用與成功運行的Makefile相同的選項?

一般來說,我正在尋找關於如何修改大型cython項目而不花費數十年等待未修改的文件重新編譯的指導。

回答

3

你可以簡單地運行,

python setup.py develop 

每次修改後。與install命令不同,它不會複製任何文件,只會創建一個到工作目錄的符號鏈接。它還會自動建立所有必要的擴展到位,在

python setup.py build_ext --inplace 

等效如果您在您的項目更改用Cython文件,只有這些文件將被重新編譯下一次運行develop命令。

pyximport模塊很適合獨立的Cython函數。但是,對於一個更復雜的項目和多個文件,上述方法可能會更簡單。

+1

這聽起來不錯 - 我會盡快調查並回復你。 –