使用来自 GitLab 的标志“--index-url”和“--extra-index-url”进行 pip 安装会导致“错误:获取时出现 HTTP 错误 404”

问题描述 投票:0回答:2

我们正在使用私有 GitLab Enterprise 安装来存储 Python 模块,如文章 包注册表中的 PyPI 包
中所述 在容器内使用以下命令来安装私有托管的软件包:

pip install <package_name_01> <package_name_02> \
    --index-url https://<personal_access_token_name_package_01>:<personal_access_token_package_01>@gitlab.example.com/api/v4/projects/<project_id_package_01>/packages/pypi/simple \
    --extra-index-url https://<personal_access_token_name_package_02>:<personal_access_token_package_02>@gitlab.example.com/api/v4/projects/<project_id_package_02>/packages/pypi/simple 

如示例所示,我们使用来自不同 GitLab 项目的包。因此,我们必须将每个 GitLab 项目指定为

--index-url
--extra-index-url
。显示的解决方案有效,但几天后,我们收到以下错误:

pip install <package_name_01> <package_name_02> \
> --index-url https://<personal_access_token_name_package_01>:<personal_access_token_package_01>@gitlab.example.com/api/v4/projects/<project_id_package_01>/packages/pypi/simple \
> --extra-index-url https://<personal_access_token_name_package_02>:<personal_access_token_package_02>@gitlab.example.com/api/v4/projects/<project_id_package_02>/packages/pypi/simple
Looking in indexes: https://<personal_access_token_name_package_01>:****@gitlab.example.com/api/v4/projects/<project_id_package_01>/packages/pypi/simple, https://<personal_access_token_name_package_02>:****@gitlab.example.com/api/v4/projects/<project_id_package_02>/packages/pypi/simple
Collecting <package_name_01>
  ERROR: HTTP error 404 while getting https://gitlab.example.com/api/v4/projects/<project_id_package_01>/packages/pypi/files/55a5d545c01aee6ef5488cb18f9d19eee9d79XXXXXXX/<package_name_01>-0.0.18-py3-none-any.whl#sha256=55a5d545c01aee6ef5488cb18f9d19eee9d79XXXXXXX (from https://gitlab.example.com/api/v4/projects/<project_id_package_01>/packages/pypi/simple/<package_name_01>/) (requires-python:>=3.6)
ERROR: Could not install requirement <package_name_01>==0.0.18 from https://gitlab.example.com/api/v4/projects/<project_id_package_01>/packages/pypi/files/55a5d545c01aee6ef5488cb18f9d19eee9d79XXXXXXX/<package_name_01>-0.0.18-py3-none-any.whl#sha256=55a5d545c01aee6ef5488cb18f9d19eee9d79XXXXXXX because of HTTP error 404 Client Error: Not Found for url: https://gitlab.example.com/api/v4/projects/<project_id_package_01>/packages/pypi/files/55a5d545c01aee6ef5488cb18f9d19eee9d79XXXXXXX/<package_name_01>-0.0.18-py3-none-any.whl for URL https://gitlab.example.com/api/v4/projects/<project_id_package_01>/packages/pypi/files/55a5d545c01aee6ef5488cb18f9d19eee9d79XXXXXXX/<package_name_01>-0.0.18-py3-none-any.whl#sha256=55a5d545c01aee6ef5488cb18f9d19eee9d79XXXXXXX (from https://gitlab.example.com/api/v4/projects/<project_id_package_01>/packages/pypi/simple/<package_name_01>/) (requires-python:>=3.6)

但是单独安装模块是可行的...

pip install <package_name_01> --index-url https://<personal_access_token_name_package_01>:<personal_access_token_package_01>@gitlab.example.com/api/v4/projects/<project_id_package_01>/packages/pypi/simple
pip install <package_name_02> --index-url https://<personal_access_token_name_package_02>:<personal_access_token_package_02>@gitlab.example.com/api/v4/projects/<project_id_package_02>/packages/pypi/simple

有人知道这里出了什么问题吗?

python pip gitlab python-module
2个回答
2
投票

这是 GitLab 中的一个错误,需要在未来解决。

GitLab 官方问题链接:https://gitlab.com/gitlab-org/gitlab/-/issues/371814


0
投票

从版本 23.1 开始,此问题已在

pip
中修复。请参阅https://github.com/pypa/pip/issues/10902#issuecomment-1792415703

我还没有准确测试你的示例,但我已经成功配置了几个具有不同标记的额外索引。

pip install --extra-index-url \
"https://user1:[email protected]/api/v4/projects/12345/packages/pypi/simple \
https://user2:[email protected]/api/v4/projects/23456/packages/pypi/simple \
https://user3:[email protected]/api/v4/projects/34567/packages/pypi/simple" \
package3

这将从第三个私有注册表安装

package3
,并使用不同的凭据从第一个和第二个私有注册表安装
package1
package2

© www.soinside.com 2019 - 2024. All rights reserved.