【发布时间】:2011-09-28 01:50:46
【问题描述】:
在我的应用程序中我想使用:
-
packageA,需要packageX==1.3 -
packageB,需要packageX==1.4 packageX==1.5
如何使用 pip 安装多个版本的packageX 来处理这种情况?
【问题讨论】:
-
将包安装到非标准位置,然后使用 PYTHONPATH 确定要导入哪一个;见this answer
-
在旁注中,这个问题中的场景以及currently accepted answer 中的 hacky 解决方案是一个很好的例子,说明为什么包所有者不应该也不应该挑剔固定的确切版本他们的依赖。他们应该一直在使用
packageX>=1.3,<2和packageX>=1.4,<2(假设上游的packageX 跟随Semantic Versioning),那么作为下游应用程序开发人员的您将毫无问题地固定和使用packageX==1.5,每个人都会很高兴。 More details here -
嗯。可选包
main_package[opt]的新括号可能会有所帮助 -
@rayluo,真的。但是,您需要对所有这些版本进行 QA/测试......或者只是祈祷。
-
@RobertLugg,中间层库和最终应用程序之间存在差异。作为一个库,
packageA或packageB不应为其依赖packageX固定特定版本,无论它是否测试了所有packageX版本(并且它肯定无法测试packageX==1.6的未来版本,1.7等)。应用程序APP的开发人员的工作是在测试后固定A、B和X的特定组合。如果packageA和BpinX喜欢这个问题的方式,APP的开发者连测试的机会都没有。祈祷甚至帮不了他们。