来自 Python 的 PyPI 本地副本

Local copy of PyPI fro Python

我需要在内部网络上部署 PyPI 的副本。这个想法是将所有 PyPI 包都放在本地存储库中,避免一直连接到真正的 PyPI 存储库。

我用bandersnatch按照PEP381镜像了PyPI的文件。 比客户的 pip 我删除 /etc/pip.conf 如下

[global]
index-url = http://www.myserver.com/repo/PyPI/web/simple
trusted-host = www.myserver.com

在客户端机器上命令:

pip install -v <some packages> 

使用本地存储库工作。但是命令

pip search --index http://www.myserver.com/repo/PyPI/web/simple <some packages>

不起作用并且 returns

raise HTTPError(http_error_msg, response=self)
pip._vendor.requests.exceptions.HTTPError: 404 Client Error: Not Found for url: http://www.myserver.com/repo/PyPI/web/ 

这里有 2 个问题:

  1. 是否可以在不安装本地PyPI服务器(例如pypiserver的情况下启用pip搜索命令?

  2. 此外,如果本地 pip 安装命令失败(例如本地不存在),是否可以回退到官方 PyPI 服务器?

谢谢

查理

bandersnatch 只是复制包,这不足以拥有 PyPI 的副本。您需要一个服务器端程序,例如 pypiserver, devpi、Artifactory、Nessus…

我看到 devpi 使用 /+simple/,你可能需要你的反向代理重写 URL 以便 Artifactory 可以使用它(/simple 是 Artifactory 中 repo 类型的要求)