【发布时间】:2019-05-27 11:48:56
【问题描述】:
我创建了自己的 python wheel 包并将其托管在本地,以便我可以使用 --extra-index-url 标志通过 pip 安装它,如下所示:
pip install --extra-index-url http://10.0.0.100:5000/ MyPackage --trusted-host 10.0.0.100
我安装了几个依赖项,并且使用 pip 版本 9.0.1 这似乎工作正常;它最初会在提供的索引处查找依赖项,会收到 404 错误,因为我只托管我自己的包,但随后会尝试在默认索引 url https://pypi.org/simple 中查找它。
升级到 pip 18.1 后,它会在初始 404 错误上引发异常并取消整个安装:
HTTPError: 404 Client Error: NOT FOUND for url: http://10.0.0.100:5000/urllib3/
我做错了什么还是这是预期的功能?
最终我希望能够在本地托管单个包,使用 pip 下载并安装它,但从默认 pip 存储库中提取任何依赖项。还有另一种方法可以做到这一点吗?我读过的所有内容都说 --extra-index-url 是实现此目的的方法,但它似乎不再起作用...
更新:
我试图在另一个系统上复制它,并在使用 pip 版本 9.0.1 时遇到了同样的问题,所以升级似乎不是根本原因。奇怪的是,在这个其他系统上升级到 18.1 后它运行良好......
最终,我只需使用 easy_install 卸载并重新安装 pip 即可使原始系统正常工作。我仍然不确定潜在的问题可能是什么......
为了回答评论,为此我使用 Flask-AutoIndex 来托管文件夹的内容。不像您的解决方案那么简单,但可以完成工作:
from flask import Flask
from flask_autoindex import AutoIndex
app = Flask(__name__)
AutoIndex(app, browse_root='packages')
if __name__ == '__main__':
app.run('0.0.0.0', debug=True, port=5005, threaded=True)
【问题讨论】:
-
您使用的是什么自定义 PyPI 服务器?使用local repository 时能否重现该问题?
标签: python pip setuptools