在一台机器上,如何/应该使用单个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
。
在阅读this question关于不同的python模块和the python docs about modules之后,我觉得正确组织一个包而不仅仅是一个模块可能是合适的,但我不能说出最佳实践会是那个。
另外,既然我认为deb包等许多项目的标准(最好?)程序是将脚本放在与模块不同的文件夹中(例如bin与lib),似乎import
仅查看同一目录中的关键字对于上述情况是不够的。