我需要对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函数.但是,对于具有多个文件的更复杂的项目,上述方法可能会更简单.