支持多个Python模块版本(具有相同的Python版本)

NYC*_*yes 5 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. --
Run Code Online (Sandbox Code Playgroud)

然后,每个人都将通过“ version ”属性存储其版本号。

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

这是完成此多模块版本需求的最佳方法(也是最Python的方法)吗?

谢谢!

wil*_*lnx 4

我在谷歌上搜索了“flask 支持多个 API 版本”,发现这篇stackoverflow 帖子非常方便。

简而言之,该帖子中建议的与您提供的唯一真正区别是它们为每个版本使用子目录,并且每个版本本身就是一个模块。

如果您能够/允许在版本之间共享通用函数/对象,那么这种结构可能会使维护/管理您的模块变得更容易。

some_package
+--- my_module/
     +--- v1_0/
          +--- __init__.py
          +--- some_file.py
     +--- v2_0/
          +--- __init__.py
          +--- some_file.py
     +--- __init__.py
     +--- common_stuff.py
Run Code Online (Sandbox Code Playgroud)

但是,如果您无法在版本之间共享内容,那么您当前的想法就可以正常工作,并且更简单。

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

import my_module.vX_Y as my_module
Run Code Online (Sandbox Code Playgroud)