具有相同名称的多个模块的Python项目

时间:2011-11-06 18:09:00

标签: python module package distribution

我有两个不同的包具有相同的名称,每个包含一组模块和类,它们的名称彼此相同,但它们的实现方式不同。设置我的包/模块结构最合乎逻辑的方式是什么?

现在我正在做类似的事情:

  Common
    utilities.py
    VersionA
      Package
        moduleX.py
        moduleY.py
    VersionB
      Package
        moduleX.py
        moduleY.py

我要求使用模块的环境,只需将路径设置为指向正确版本的“Package”。

最重要的是,两个软件包共享一个模块! “Utilities.py”。现在我也要求安装程序将Utilties.py添加到路径中。

这令人困惑,感觉像是黑客。但是,我无法找到更好的方法来做到这一点。

1 个答案:

答案 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

你很高兴。