我的项目依赖于一些公共包和一些私有包。其中一个私有包与PyPi上的另一个公共包具有相同的名称(让我们称其为“冲突”)。在我的setup.py文件中
install_requires = ['public_a', 'public_b', 'conflicting' ],
dependency_links = ['https:blah/blah/blah/conflicting.git#egg=conflicting']即使我在依赖链接中指定了egg,pip仍然安装了公共包“conflicting”。当存在名称冲突时,有没有办法区分私有包的优先级?
发布于 2016-06-25 04:54:04
我知道这有点花里胡哨,但这很简单,而且确实有效:
在本地包的版本号上加上100。只要pip可以通过--extra-index或--find-links options找到您的本地包,它就会比较版本号,并采用满足依赖包的setup.py中指定的版本约束的最高可用版本。如果你的包有更高的版本,它将获胜。
发布于 2016-01-15 00:24:22
您可以设置自己的PyPi服务器,并将其用作主要来源,而将全局服务器用作辅助来源。这将使您的包优先于公共包。
例如手动:pip install --index-url=<your-pipy-server> --extra-index-url=https://pypi.python.org/simple <your package>
当然,如果您尝试安装的版本在您的服务器上丢失,但可从冲突的公共包中获得,则可能会发生错误。
https://stackoverflow.com/questions/30384322
复制相似问题