【发布时间】:2018-12-12 14:15:40
【问题描述】:
出于某种我无法理解的原因,pip 正在从全局的 pypi 而不是我自己的服务器获取包。我的包,我们称之为foo,有一个依赖bar。
pip search --index-url https://example.com/simple foo
退回我的包裹。
pip install --index-url https://example.com/simple foo
导致错误,因为它无法下载bar。
Could not find a version that satisfies the requirement bar (from foo) (from versions: )
No matching distribution found for bar (from foo)
pip install --index-url https://example.com/simple --extra-index-url https://pypi.python.org/simple foo
好的,所以问题现在应该解决了吧?它会从我的索引中获得foo,从pypi获得bar,对吗?好吧……恐怕事实并非如此。使用此配置,它不会从我的索引中下载foo,而是下载pypi 中的foo 包。即使在安装之后,如果我再次运行pip search foo,它会检测到我的为latest,但全局检测为installed
为了测试的目的,为了有一个干净的基线,我尝试了python:3.7-alpine,结果相同。
作为一种解决方法,我已将包的版本设置为yzt-0.1,以便我可以专门安装foo:yzt-0.1,由于它在全局中找不到它,它将从我的仓库安装。
【问题讨论】:
-
您是否尝试过相反的方法?
pip install foo --extra-index-url https://example.com/simple -
服务器使用对我来说是正确的;可能是 python 版本/abi/平台不匹配。您将哪些文件上传到您的服务器以及您要在哪个平台上安装?此外,
pip install -vvv将为您提供有关在哪个服务器上找到哪些软件包的更多信息。