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 deploydeploying 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 上部署包失败,没有任何错误消息

成功后部署 pypi travis ci

Travis CI - 以 sudo 运行部署步骤(PyPI)?

使用 Travis-CI 将多个发行版部署到 PyPI 时防止冲突

Travis pypi 包版本

使用 travis 的 pypi deploy 构建***