支持多个Python模块版本(使用相同版本的Python)

时间:2016-03-15 01:16:38

标签: python import module version multi-module

我环顾四周,但找不到我问题的明确答案。

我非常需要支持相同Python模块的N版本。

如果它们存储在同一个包/目录中,则必须进行唯一命名,如下例所示:

      .../some/package/my_module_1.0.py
      .../some/package/my_module_1.1.py
      .../some/package/my_module_2.0.py
              -- etc. --

反过来,每个人都会通过" 版本 "存储其版本号。属性。

然后,消费程序会导入所需的正确版本 (例如:import my_module_1.1)。

这是实现这种多模块版本需求的最佳(和最pythonic)方式吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

我做了一些谷歌搜索“烧瓶支持多个API版本”,并发现this stackoverflow帖子非常方便。

简而言之,该帖子中提出的唯一真正的差异与您提供的内容相比,它们为每个版本使用子目录,每个版本本身就是一个模块。

如果您能够/允许在版本之间共享通用功能/对象,则此结构可能使维护/管理模块变得更容易。

some_package
+--- my_module/
     +--- v1_0/
          +--- __init__.py
          +--- some_file.py
     +--- v2_0/
          +--- __init__.py
          +--- some_file.py
     +--- __init__.py
     +--- common_stuff.py

但是如果你不能在版本之间分享东西,那么你现在的想法就可以了,而且更简单。

然后你可以像这样导入它:

import my_module.vX_Y as my_module