upload - 使用 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
在这个阶段,我有几点意见。
文档提到了示例 gitlab-ci.yaml 文件的存储库,但在我可以在那里找到的任何示例中都没有提到 PyPi 或麻线。
文档提到了 gitlab.example.com。我不知道为什么,这也适用于 gitlab.com 吗?
无论如何,我不知道如何从这里开始。我有有限的方法来调试这个或解释产生的错误的含义。我怎样才能使这项工作?
解决方案
据我所知,您必须在 repository-url 中使用项目 ID:
twine upload dist/*.tar.gz --skip-existing --verbose --repository-url https://gitlab.com/api/v4/projects/<PROJECT_ID>/packages/pypi
推荐阅读
- android - 自定义 PinEntryView - 默认符号
- git - 可以在 sourcetree 上使用 gitflow 和拉取请求吗?
- java - 将 Java 应用程序从 PC 连接到另一台 PC 上的 XAMPP 服务器
- python - 非正态分布数据中的异常值检测
- angular - 仅在为生产构建演示应用程序时获取“无法解析所有参数”
- vuejs2 - 如何使用 VueJS 和 Vuetify 有条件地显示文本字段的提示?
- django - Axios 不存储 Django 会话 cookie
- python-3.x - 作为嵌套 for 循环的一部分,将列表导出为 pandas 数据框中的新列
- node.js - Mongoose Schema ObjectID 的数据透视表
- java - 属性 java.runtime.version 和 java.version 有什么区别