修改大型cython项目的工作流

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

我以前没有研究过cython,所以可以提供一些指导-到目前为止,我已经将所有依赖项放入python virtualenv中,并克隆并安装了sklearn git.

现在,有什么好的方法可以修改.pyx文件?我应该进行修改然后重新安装以查看效果吗?还是改成建筑?

有什么方法可以避免重新编译所有未更改的内容?

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

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

解决方法:

你可以简单地奔跑,

python setup.py develop

每次修改后.与install命令不同,此命令不会复制任何文件,只会创建指向工作目录的符号链接.它还将自动构建所有必要的扩展,等效于

python setup.py build_ext --inplace

如果您在项目中更改了Cython文件,则下次您运行developer命令时,将仅重新编译那些文件.

pyximport模块非常适合独立的Cython函数.但是,对于具有多个文件的更复杂的项目,上述方法可能会更简单.

上一篇:Python学习(二):入门篇:python中流程控制与函数编写


下一篇:从python内部调用python脚本