修改大型cython项目的工作流程

时间:2015-07-21 14:39:16

标签: python workflow scikit-learn virtualenv cython

我需要对scikit-learn进行一些修改,包括对cython代码的更改。

我之前没有使用过cython,所以可以做一些指导 - 到目前为止,我已经在python virtualenv中获得了所有的依赖关系,克隆并安装了sklearn git。

现在,修改.pyx文件的好工作流程是什么?我应该进行修改然后重新安装以查看效果吗?或者改为构建?

有没有办法避免重新编译所有未更改的内容?

我听说过import pyximport; pyximport.install()但是对我来说这会导致sklearn编译错误 - >有没有办法确保它使用与成功运行的Makefile相同的选项?

总的来说,我正在寻找有关如何修改大型cython项目的指导,而无需花费数十年时间等待未修改的文件重新编译。

1 个答案:

答案 0 :(得分:3)

你可以简单地跑,

python setup.py develop
每次修改后

。与install命令不同,它不会复制任何文件,只会创建指向工作目录的符号链接。它还将自动构建所有必要的扩展,相当于

python setup.py build_ext --inplace

如果更改项目中的Cython文件,则下次运行develop命令时,只会重新编译这些文件。

pyximport模块非常适合独立的Cython功能。但是,对于包含多个文件的更复杂项目,上述方法可能更简单。