对第三方Python模块进行修改的最佳实践

4 投票
1 回答
572 浏览
提问于 2025-04-17 04:50

我经常想在自己的项目中使用一个第三方的Python模块,但我知道我还需要对这个模块进行一些修改,并且希望把这些修改提交给原作者。那我该怎么安排文件和安装方式呢?

大多数Python模块的结构都是这样的:根目录下有一个“setup.py”文件,用来编译和安装这个模块。问题是,每次我对模块的源代码进行修改后,都需要重新运行完整的安装步骤,才能在我的项目中使用这些修改。对于像scipy这样的大模块,这个过程可能会花费不少时间。

另外,我可以直接在已安装的Python模块上进行修改,但这样的话,我就得手动把这些修改再移回模块的源代码中,以便生成补丁等等。

我知道有虚拟环境(virtualenv)和PYTHONPATH,但它们只是把模块安装到不同的位置。

到目前为止,我是手动创建符号链接,但这样做有点麻烦。

1 个回答

6

如果第三方项目使用的是setuptools或distribute,你可以用 python setup.py develop 来代替 install。这样做会在你的site-packages目录中为你创建合适的符号链接。

撰写回答