首页 > 解决方案 > 使用 twine 上传 pypi 包到 gitlab 时获取 {"error":"404 Not Found"}

问题描述

我在尝试使用 twine 将我的 pypi 包上传到 gitlab 私有存储库时遵循官方文档。

我正在 gitlab.com 上开发一个设置为私有的社区项目。

我正在使用以下命令行:

twine upload dist/*.tar.gz --skip-existing --verbose --repository-url https://gitlab.com/api/v4/projects/mygroup/myproject/packages/pypi

当我运行这个命令时,twine 会询问用户名和密码。我输入我的电子邮件和 2 因素令牌(我为我的 gitlab.com 帐户启用了 2 因素身份验证)

Enter your username: my@email.com
/home/myname/.venv/myproject/lib/python3.7/site-packages/twine/auth.py:72: UserWarning: No recommended backend was available. Install a recommended 3rd party backend package; or, install the keyrings.alt package if you want to use the non-recommended backends. See https://pypi.org/project/keyring for details.
  warnings.warn(str(exc))

Enter your password: 

然后我收到一条令人愉快的消息:

Uploading myproject-0.0.1.tar.gz
100%|██████████████████| 25.6k/25.6k [00:00<00:00, 87.4kB/s]

随后是一条不太令人愉快的错误消息:

Content received from server:
{"error":"404 Not Found"}
HTTPError: 404 Not Found from https://gitlab.com/api/v4/projects/mygroup/myproject/packages/pypi
Not Found

在这个阶段,我有几点意见。

  1. 文档提到了示例 gitlab-ci.yaml 文件的存储库,但在我可以在那里找到的任何示例中都没有提到 PyPi 或麻线。

  2. 文档提到了 gitlab.example.com。我不知道为什么,这也适用于 gitlab.com 吗?

无论如何,我不知道如何从这里开始。我有有限的方法来调试这个或解释产生的错误的含义。我怎样才能使这项工作

标签: uploadgitlabgitlab-cipypitwine

解决方案


据我所知,您必须在 repository-url 中使用项目 ID:

twine upload dist/*.tar.gz --skip-existing --verbose --repository-url https://gitlab.com/api/v4/projects/<PROJECT_ID>/packages/pypi

推荐阅读