【发布时间】:2020-09-07 22:48:20
【问题描述】:
我有一个本地 GitLab 安装,附带一个本地 PyPI 服务器来存储公司内部 Python 包。
如何配置我的 PyPI 以在两个索引服务器中搜索包?
我阅读了有关.pypirc / pip/pip.ini 的信息并找到了各种设置,但到目前为止还没有解决方案。
- 大多数解决方案将所有搜索永久切换到其他索引服务器。但我希望能够像往常一样从 pypi.org 安装和更新包,而一些包来自本地索引。
- 将多个索引服务器设置为使用凭据仅限于 distutils(例如通过 twine 使用),但不被 pip 使用
- 如果在
[global]或[install]中配置索引服务器会出现混淆。我假设后者是pip install的规则子集。 (这里的文档不清楚。) - 虽然 twine 可以引用配置文件中的存储库条目,例如
-r gitlab引用[gitlab]部分,但 pip 不能使用这样的命名引用...
那么我想要达到的目标:
-
pip应该能够安装和更新来自 pypi.org 的常规软件包,例如 colorama -
pip应该能够从 gitlab.company.com 安装和更新软件包- 必须使用用户名 (
__token__) 和密码 (7a3b62342c784d87) 进行身份验证
- 必须使用用户名 (
目前的实验:
[global]
[install]
find-links =
https://pypi.org
https://gitlab.company.de/api/v4/projects/2142423/packages/pypi
trusted-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/pypi
username = __token__
password = geheim
【问题讨论】:
-
当您说“搜索”时,您的字面意思是来自
pip search的结果吗?或者只是想从pip install安装?如果是后者,stackoverflow.com/questions/30889494/… 应该会为您解答。 -
"search" 泛指搜索,而不是
pip search命令。 -
@DustinIngram 我假设您指的是
--extra-index-url。但它如何处理凭据?我只看到一个 URL。我不想在每个pip ***command 上手动输入或复制/粘贴一个长令牌。 -
我想你正在寻找这样的东西 --> devpi.net/docs/devpi/devpi/stable/%2Bd/index.html
标签: python pip gitlab pypi gitlab-api