0

在一台机器上,如何/应该如何使用单个 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只在同一目录中查找的关键字是对于上述情况是不够的。

4

0 回答 0