为了账号安全,请及时绑定邮箱和手机立即绑定

如何设置两个 PyPI 索引

如何设置两个 PyPI 索引

开满天机 2023-07-18 17:58:13
我有一个本地 GitLab 安装,附带本地 PyPI 服务器来存储公司内部 Python 包。如何配置 PyPI 以在两个索引服务器中搜索包?我阅读了有关.pypirc/ 的内容pip/pip.ini并找到了各种设置,但到目前为止还没有解决方案。大多数解决方案将所有搜索永久切换到其他索引服务器。但我希望能够正常安装和更新来自 pypi.org 的软件包,而某些软件包来自本地索引。使用凭证接缝设置多个索引服务器仅限于 distutils(例如由 twine 使用),但不由 pip 使用[global]如果在或中配置索引服务器会出现混乱[install]。我假设后一个是 的规则子集pip install。(这里的文档不清楚。)-r gitlab虽然 twine 可以像引用某个部分一样引用配置文件中的存储库条目[gitlab],但 pip 无法使用此类命名引用...所以我想达到的目标是:pip应该能够从 pypi.org 安装和更新常规软件包,如 coloramapip应该能够从 gitlab.company.com 安装和更新软件包使用用户名 ( __token__) 和密码 ( 7a3b62342c784d87) 进行身份验证必须有效到目前为止的实验:[global][install]find-links =    https://pypi.org    https://gitlab.company.de/api/v4/projects/2142423/packages/pypitrusted-host =    https://pypi.org    https://gitlab.company.de/api/v4/projects/2142423/packages/pypi[distutils]index-servers =    gitlab[gitlab]repository = https://gitlab.company.de/api/v4/projects/2142423/packages/pypiusername = __token__password = geheim
查看完整描述

2 回答

?
PIPIONE

TA贡献1829条经验 获得超9个赞

目标

  1. pip install应该从 GitLab 以及 PyPi 存储库安装/更新软件包。如果两者都存在相同的包,则首选PyPi 。

  2. pip install应该支持身份验证。首选,如果我们可以以某种方式让它从配置文件中读取,这样我们就不需要重复指定它。

理论

  1. pip install支持--extra-index-url指定额外的 PyPi 索引。同样也可以通过文件提供pip.conf

  2. pip使用requests支持~/.netrc配置文件(文档)。

脚步

  1. 在建议的任何位置创建一个pip.conf(如果在 Windows 上) 。pip.inipip config -v list

  2. 将您的 GitLab PyPi 索引 URL 添加到pip.conf.

[install]

extra-index-url = https://gitlab.com/api/v4/projects/12345678/packages/pypi/simple

创建或更新您的~/.netrc文件并添加您的 GitLab 身份验证详细信息。

machine gitlab.com

    login <token-name>

    password <token-pass>

  1. 我们现在可以像安装软件包一样简单pip install <package-name>pip现在将查看两个索引来查找您的软件包,并优先选择 指向的索引index-url

附加信息

  1. pip search如果支持多个索引,同样的情况也是可能的。在此之前,需要手动指定应使用哪个 PyPi 索引 URL。GitLab 似乎不支持,因为当指定为 PyPi 索引时pip search它会抛出415 客户端错误:不支持的媒体类型。

  2. 至于您的疑问,中的每个部分都pip.conf指向该特定命令,提供了、for等的[install]配置。可能指的是可以为所有命令指定的参数,无论是 it还是。pip install[search]pip search[global]pip installpip search

  3. .pypircfile 专门用于配置与上传相关的包索引(由 twine/flint 使用),其中 as与管理本地系统上的 python 包的pip.conf配置相关。pip


查看完整回答
反对 回复 2023-07-18
?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

试试这个:

[global]

index-url = http://pypi.org/simple

trusted-host = pypi.org

               gitlab.company.de

extra-index-url= https://username:password@gitlab.company.de/api/v4/projects/2142423/packages/pypi



查看完整回答
反对 回复 2023-07-18
  • 2 回答
  • 0 关注
  • 171 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信