在一台机器上,如何/应该如何使用单个 python 模块的两个版本
(a) 同时在同一台机器上,
(b) 在单个用户下,以及
(c) 没有安装外部程序(遗憾的是,不能在 Windows 工作计算机上可靠地安装外部东西),
(d) 具有相同的名称(以便在升级 ( $ git pull newversion
) 时不费力)
代码项目的生产版本不断运行。在同一台机器上,代码的测试/开发版本也定期运行。他们如何使用自己特定版本的给定模块?
版本 A:
#!/usr/bin/python34
#C:\\myproject\\testversion\\bin\\myprogram.py
import mymodule ## this version in C:\\myproject\\testversion\\lib\\python
mymodule.do_stuff() # do_stuff version A
版本 B:
#!/usr/bin/python34
#C:\\myproject\\productionversion\\bin\\myprogram.py
import mymodule ## this version is in C:\\myproject\\productionversion\\lib\\python
mymodule.do_stuff() ## do_stuff version B
如果我的理解是正确的,那么严格使用PythonPath
环境变量会为两个版本选择相同的操作。mymodule
在阅读了这个关于不同 python 模块的问题和关于 modules 的 python 文档之后,我觉得适当地组织一个包而不仅仅是一个模块可能是合适的,但我不能完全说出最佳实践是什么。
此外,由于我认为许多项目(例如 deb 包等)的标准(最佳?)程序是将脚本放在与模块不同的文件夹中(例如 bin 与 lib),因此似乎import
只在同一目录中查找的关键字是对于上述情况是不够的。