19.2.2 包的开发版本
改进一个项目是,开发人员通常需要测试对已安装包的修改。将已安装的版本替换为开发版本可能是个糟糕的想法,因为开发版本不一定正确,而且系统上的其他工具可能会依赖于已安装的包。
可以使用virtualenv或venv在开发环境中配置包的一个完全独立的副本,不过对于小的修改,建立这样一个包含所有依赖包的虚拟环境开销可能太大。
还有另一种选择,对于正在开发的包,可以使用pkgutil修改其中模块的搜索路径。不过,在这种情况下,路径必须逆向设置,以使开发版本会覆盖已安装的版本。给定一个包demopkg2,其中包含一个__init__.py和overloaded.py,正则开发的函数位于demopkg2/overloaded.py,已安装的版本包含:
def func():
print('This is the installed version of func().')
另外,demopkg2/init.py包含:
import pkgutil
__path__ =

本文介绍了在Python中如何处理包的开发版本,特别是在不卸载已安装包的情况下进行修改测试。通过使用pkgutil工具,可以在运行时调整模块的搜索路径,使得开发版本的包能够覆盖已安装的版本,从而方便地进行小规模的修改测试。文中给出了具体的示例,展示了如何在demopkg2包中实现这一操作。

4223

被折叠的 条评论
为什么被折叠?



