如何正确认证GitLab私有PyPI仓库?解决pip免重复指定地址问题
正确配置GitLab PyPI仓库实现免参数安装
问题背景
我在GitLab上托管了一个PyPI包,使用带--index-url参数的pip install命令可以正常下载安装:
# 此命令可正常运行 pip install MY-PACKAGE \ --index-url https://__token__:<your_personal_token>@gitlab.com/api/v4/projects/MY-PROJECT-ID/packages/pypi/simple
但希望不用每次安装都手动指定--index-url,因此尝试通过本地配置文件实现免参数安装。
尝试的配置
1. ~/.pypirc 文件
[distutils] index-servers = gitlab [gitlab] repository = https://gitlab.com/api/v4/projects/MY-PROJECT-ID/packages/pypi username = __token__ password = <GITLAB TOKEN>
2. pip配置文件(~/.pip/pip.conf 和 ~/.config/pip/pip.conf)
[global] extra-index-url=https://__token__:<GITLAB_TOKEN>@gitlab.com/api/v4/projects/MY-PROJECT-ID/packages/pypi
出现的错误
执行pip3 install MY-PACKAGE时返回如下错误:
% pip3 install MY-PACKAGE Looking in indexes: https://pypi.org/simple, https://__token__:****@gitlab.com/api/v4/projects/MY-PROJECT-ID/packages/pypi ERROR: Could not find a version that satisfies the requirement MY-PACKAGE (from versions: none) ERROR: No matching distribution found for MY-PACKAGE
补充环境信息:使用MacOS,通过asdf版本管理器安装Python,运行在虚拟环境中。
解决方法
问题根源是配置的仓库URL末尾缺少/simple路径,修正后的正确配置如下:
修正后的 ~/.pypirc
[distutils] index-servers = gitlab [gitlab] repository = https://gitlab.com/api/v4/projects/MY-PROJECT-ID/packages/pypi/simple username = __token__ password = <GITLAB TOKEN>
修正后的 pip.conf(~/.pip/pip.conf 或 ~/.config/pip/pip.conf)
[global] extra-index-url=https://__token__:<GITLAB_TOKEN>@gitlab.com/api/v4/projects/MY-PROJECT-ID/packages/pypi/simple
内容的提问来源于stack exchange,提问作者Andrew
相关产品推荐
相关产品推荐

