我有两个不同的包具有相同的名称,每个包含一组模块和类,它们的名称彼此相同,但它们的实现方式不同。设置我的包/模块结构最合乎逻辑的方式是什么?
现在我正在做类似的事情:
Common
utilities.py
VersionA
Package
moduleX.py
moduleY.py
VersionB
Package
moduleX.py
moduleY.py
我要求使用模块的环境,只需将路径设置为指向正确版本的“Package”。
最重要的是,两个软件包共享一个模块! “Utilities.py”。现在我也要求安装程序将Utilties.py添加到路径中。
这令人困惑,感觉像是黑客。但是,我无法找到更好的方法来做到这一点。
答案 0 :(得分:3)
定义一个全局可访问的env变量,您将使用该变量来选择版本(VersionA,VersionB)。然后,在Common/__init__.py
put:
import whenver_you_put_your_env as envloc
if (envloc.env == VersionA)
import VersionA.Package as Package
elif (envloc.env == VersionB)
import VersionB.Package as Package
现在,只要您想在文件中使用Package,就可以执行以下操作:
import Common.Package
你很高兴。