【问题标题】:Python Project with Multiple Modules with the same Name具有多个同名模块的 Python 项目
【发布时间】:2011-11-07 02:24:23
【问题描述】:

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

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

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

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

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

这很令人困惑,感觉就像是一个 hack。但是,我想不出更好的方法来做到这一点。

【问题讨论】:

标签: python module package distribution


【解决方案1】:

定义一个全局可访问的环境变量,您将使用它来选择版本(VersionA,VersionB)。然后,在Common/__init__.py 中输入:

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

你可以走了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-02
    • 1970-01-01
    • 2015-08-27
    • 1970-01-01
    • 1970-01-01
    • 2019-01-10
    相关资源
    最近更新 更多