Travis CI 的 PyPi 部署:身份验证无效或不存在
Posted
技术标签:
【中文标题】Travis CI 的 PyPi 部署:身份验证无效或不存在【英文标题】:PyPi deployment from Travis CI: Invalid or non-existent authentication 【发布时间】:2019-07-03 18:45:13 【问题描述】:通过 Travis CI 部署到 PyPi 时出现以下错误:
HTTPError: 403 Client Error: Invalid or non-existent authentication information. for url: https://upload.pypi.org/legacy/
我已经按照 pypi deployment 的 Travis CI 文档设置了我的 PyPI 用户名和密码,后者根据 password encryption docs 加密。密码没有任何值得转义的字符,但无论如何我都尝试转义所有字符。
似乎没有任何效果,有什么建议吗?
Travis CI 配置的相关部分是:
- provider: pypi
on:
branch: master
tags: true
user: "<<username>>"
password:
secure: "<<encrypted password>>"
distributions: "sdist bdist_wheel"
skip_existing: true
编辑
在 Travis 运行 preparing deploy
和 deploying the application
之前,它似乎已成功验证。然而,当它完成上传时,它会引发 403 invalid auth 错误:
Installing deploy dependencies
...
Authenticated as <<username>>
Preparing deploy
...
Deploying application
...
Uploading distributions to https://upload.pypi.org/legacy/
Uploading example-package-py3-none-any.whl
100%|██████████| 41.0k/41.0k [00:00<00:00, 90.3kB/s]
NOTE: Try --verbose to see response content.
HTTPError: 403 Client Error: Invalid or non-existent authentication information. for url: https://upload.pypi.org/legacy/
【问题讨论】:
修复skip-existing
-> skip_existing
。
@phd,谢谢,已更新错字
【参考方案1】:
密码只能是字母数字字符。
在配置中丢失“服务器”。
server: https://upload.pypi.org/legacy
【讨论】:
我假设您的意思是“使用”而不是“丢失”:尝试显式设置服务器上传 URL,但仍然抛出错误。【参考方案2】:在联系travis-ci
支持后,他们注意到该存储库首先存在于travis-ci.org
而不是travis-ci.com
。这给身份验证带来了问题。
解决方案是针对travis-ci.com
显式运行travis encrypt
:
travis encrypt <<password>> --com --debug
调试标志显然是可选的,并在终端中提供了一些附加信息。
【讨论】:
以上是关于Travis CI 的 PyPi 部署:身份验证无效或不存在的主要内容,如果未能解决你的问题,请参考以下文章
使用 Travis-ci 在 pypi 上部署包失败,没有任何错误消息
Travis CI - 以 sudo 运行部署步骤(PyPI)?