支持多个Python模块版本(与Python版本相同)
Supporting multiple Python module versions (with the same version of Python)
我环顾四周,但找不到我的问题的明确答案。
我非常需要支持同一 Python 模块的 N 个版本。
如果它们存储在同一个 package/directory 中,则必须对它们进行唯一命名,如下例所示:
.../some/package/my_module_1.0.py
.../some/package/my_module_1.1.py
.../some/package/my_module_2.0.py
-- etc. --
每个人都会依次通过“version”属性存储其版本号。
消费程序然后导入它需要的正确版本
(例如:导入 my_module_1.1)。
这是实现多模块版本需求的最佳(也是最 pythonic)方式吗?
谢谢!
我用谷歌搜索 "flask support multiple API versions",发现 Whosebug post 非常方便。
简而言之,post 与您提供的建议唯一真正的区别是它们为每个版本使用子目录,并且每个版本本身就是一个模块。
如果您 able/allowed 在版本之间共享公共 functions/objects,此结构可能会使 maintaining/managing 您的模块更容易。
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
我环顾四周,但找不到我的问题的明确答案。
我非常需要支持同一 Python 模块的 N 个版本。
如果它们存储在同一个 package/directory 中,则必须对它们进行唯一命名,如下例所示:
.../some/package/my_module_1.0.py
.../some/package/my_module_1.1.py
.../some/package/my_module_2.0.py
-- etc. --
每个人都会依次通过“version”属性存储其版本号。
消费程序然后导入它需要的正确版本 (例如:导入 my_module_1.1)。
这是实现多模块版本需求的最佳(也是最 pythonic)方式吗?
谢谢!
我用谷歌搜索 "flask support multiple API versions",发现
简而言之,post 与您提供的建议唯一真正的区别是它们为每个版本使用子目录,并且每个版本本身就是一个模块。
如果您 able/allowed 在版本之间共享公共 functions/objects,此结构可能会使 maintaining/managing 您的模块更容易。
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