如何使 `pip search` 与我的本地 pypi 服务器一起工作?

Posted

技术标签:

【中文标题】如何使 `pip search` 与我的本地 pypi 服务器一起工作?【英文标题】:How can I make `pip search` work with my local pypi server? 【发布时间】:2018-01-23 07:27:05 【问题描述】:

我有一堆与互联网隔离的机器,只能访问本地网络上的一些服务。

我希望使用这些机器的用户能够从本地 pypi 服务器搜索和安装他们想要的任何 python 库。因此,我在 /etc/ 下创建了一个全局 pip.conf,其中包含以下几行:

[global]
trusted-host = my.pypi-server.com
index-url = https://my.pypi-server.com/

当库的名称已知并且您只需运行 pip install fancy-lib 时,此方法有效。但是,在搜索包时,pip 似乎忽略了 index-url:

$  pip search fancy-lib -vvvv
Starting new HTTPS connection (1): pypi.python.org

$  pip install fancy-lib -vvvv
Collecting fancy-lib
  1 location(s) to search for versions of fancy-lib:
  * https://my.pypi-server.com/simple/fancy-lib
  Getting page https://my.pypi-server.com/simple/fancy-lib
  Looking up "https://my.pypi-server.com/simple/fancy-lib" in the cache
  No cache entry available
  Starting new HTTPS connection (1): https://my.pypi-server.com/

如何让pip search 与我的本地 pypi 服务器一起工作?

【问题讨论】:

【参考方案1】:

这似乎只是 RTM 的问题。搜索索引独立于安装索引,使用index指定:

[global]
trusted-host = my.pypi-server.com
index = https://my.pypi-server.com/
index-url = https://my.pypi-server.com/

此配置文件的替代方案是:

[global]
trusted-host = my.pypi-server.com

[search]
index = https://my.pypi-server.com/

[install]
index-url = https://my.pypi-server.com/

这不是很直观,已经有一个增强请求可以解决它:https://github.com/pypa/pip/issues/4263

【讨论】:

以上是关于如何使 `pip search` 与我的本地 pypi 服务器一起工作?的主要内容,如果未能解决你的问题,请参考以下文章

如何使 conda-build 正常工作并找到 setup.py?

setup.py 不尊重 PIP_INDEX_URL

安装 web3.py 时如何消除错误

如何搭建本地的PIP源提高Devstack和venv环境的安装速度

怎么装pip

如何在 Python 的 setup.py 中包含和安装本地依赖项?