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包含: