如何为 pypi pip 搜索设置 devpi-server

Posted

技术标签:

【中文标题】如何为 pypi pip 搜索设置 devpi-server【英文标题】:how to setup devpi-server for pypi pip searching 【发布时间】:2014-07-31 04:09:50 【问题描述】:

我正在使用a devpi-server 在本地缓存并使用 pip 安装 pypi 包。但是,当我使用 devpi 服务器搜索包时,出现以下错误:

pypi.xyz.com 是服务器的名称

ProtocolError: <ProtocolError for pypi.xyz.com:33141/root/pypi/+simple/: 405 Method Not Allowed>

请注意,安装工作正常

编辑:我正在使用允许通过在调用 pip 命令之前设置 http_proxy 来访问 pypi.xyz.com 的代理。代理工作正常并允许访问 pypi.xyz.com 服务器,因为您可以毫无问题地运行 pip install 命令。

pip.conf:

[global]

[install]
index-url = http://pypi.xyz.com:33141/root/pypi/+simple/

[search]
index = http://pypi.xyz.com:33141/root/pypi/+simple/

添加@JanVlcinsky 要求的说明: 1.使用pypi安装devpi 2.除了端口改变,没有修改默认设置 3. 当我使用 pip 并设置以下环境变量时,控制台出现协议错误

export http_proxy=http://localhost:33128
    将端口更改为 33141 只是为了一些混淆安全,尽量避免使用默认值 它是一个 http_proxy(使用 squid 在本地运行)

【问题讨论】:

@askhool 提供更多细节。你是怎么安装devpi的,你有没有修改一些默认设置?您在哪里看到“ProtocolError” - 在控制台上,在日志中?最好提供完整的文本以及您如何称呼它。为什么要在端口 33141 上运行它,而默认端口是 3141。代理的设置是什么,代理的确切含义是什么(它是 HTTP 代理吗?)。它如何适用于浏览器中的其他 HTTP 请求。 @JanVlcinsky 1. 使用 pip install devpi 安装了 devpi 【参考方案1】:

你可以在the official doc的“使用pip搜索”部分找到答案:

pip install -q -U devpi-web
devpi-server --stop
devpi-server --recreate-search-index
devpi-server --start

【讨论】:

以上是关于如何为 pypi pip 搜索设置 devpi-server的主要内容,如果未能解决你的问题,请参考以下文章

如何为 windows 下的 python 的 pip 工具设置代理服务器

如何为python获取PIP [重复]

如何为python安装子进程模块?

如何为每个配置文件配置 PIP 以使用代理(带身份验证)?

如何为另一个版本的 python 制作 pip install 东西

如何为 PyPI 组织 Python 模块以支持 2.x 和 3.x