支持多个Python模块版本(具有相同版本的Python)
问题内容:
我环顾四周,但找不到明确的答案。
我非常需要支持同一Python模块的N版本。
如果它们存储在相同的包/目录中,则它们必须具有唯一的名称,如以下示例所示:
.../some/package/my_module_1.0.py
.../some/package/my_module_1.1.py
.../some/package/my_module_2.0.py
-- etc. --
然后,每个人都将通过“ version ”属性存储其版本号。
然后,使用程序将导入所需的正确版本(例如:import my_module_1.1)。
这是完成此多模块版本需求的最佳方式(也是最Python方式)吗?
谢谢!
问题答案:
我对“烧瓶支持多个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
但是,如果您不能在版本之间共享内容,那么您当前的想法就可以正常工作,并且更简单。
然后可以像这样导入它:
import my_module.vX_Y as my_module