【发布时间】:2015-08-03 17:54:10
【问题描述】:
我的项目依赖于一些公共包和一些私有包。其中一个私有包与 PyPi 上的另一个公共包同名(我们称之为“冲突”)。在我的 setup.py 文件中,我有
install_requires = ['public_a', 'public_b', 'conflicting' ],
dependency_links = ['https:blah/blah/blah/conflicting.git#egg=conflicting']
即使我在依赖链接中指定了 egg,pip 仍然会安装“冲突”的公共包。当出现名称冲突时,有没有办法优先考虑私有包?
【问题讨论】:
-
您找到修复/解决方法了吗?
-
@augurar 很遗憾没有
-
如果不能重命名私有包,您可以避免使用公共包使用的版本。因此,如果公共包有 1.0、1.1、1.2,您的私有包可以使用 1.0-pro、1.1-dev、1.2.111。然后在 install_requires 和 dependency_links 中显式设置版本。我不知道这在实践中是否有效。
-
@augurar 在下面查看我的答案。这是一个 hack,但它可以完成工作。
标签: python package pip setup.py pypi