对第三方Python模块进行修改的最佳实践
我经常想在自己的项目中使用一个第三方的Python模块,但我知道我还需要对这个模块进行一些修改,并且希望把这些修改提交给原作者。那我该怎么安排文件和安装方式呢?
大多数Python模块的结构都是这样的:根目录下有一个“setup.py”文件,用来编译和安装这个模块。问题是,每次我对模块的源代码进行修改后,都需要重新运行完整的安装步骤,才能在我的项目中使用这些修改。对于像scipy这样的大模块,这个过程可能会花费不少时间。
另外,我可以直接在已安装的Python模块上进行修改,但这样的话,我就得手动把这些修改再移回模块的源代码中,以便生成补丁等等。
我知道有虚拟环境(virtualenv)和PYTHONPATH,但它们只是把模块安装到不同的位置。
到目前为止,我是手动创建符号链接,但这样做有点麻烦。
1 个回答
6
如果第三方项目使用的是setuptools或distribute,你可以用 python setup.py develop
来代替 install
。这样做会在你的site-packages目录中为你创建合适的符号链接。