我有两个python包A
和B
,我想合并成A
,即B
的所有功能现在可以在A.B
中获得。以前,A-1.0
依赖于B-1.0
。现在我想避免,A-2.0
的用户仍然安装B-1.0
,我不知道如何正确处理这个问题。Python的依赖关系:将两个包合并为一个
不同的解决方案/想法,我想出了:
包括在
A-2.0
试图一些代码导入B
,如果一个ImportError提高,捕获异常并继续下去,否则抛出抛出一个RuntimeError是B
被安装在平行不知何故标记
B
作为A-2.0
阻断剂(这可能?)为
B
创建一个“假”后继者,因此更新其虚拟环境或安装B
“最新”版本的用户将获得一个空包,导入时会引发异常。
我欢迎您的意见和经验
我喜欢选项3. – Kevin 2015-02-11 14:30:39
“我想合并到A中的A和B” - 您绕过了可以正确处理依赖关系的包管理器,为自己创建了一个问题。您应该有一个令人信服的理由来合并它们,或者根本不合并它们。 – msw 2015-02-11 14:58:36
如果你制作了一张(A.version,B.version,is_allowed?)表格,这个问题会更加清楚。 – msw 2015-02-11 15:01:56