来自 Travis CI 的 PyPi 部署:无效或不存在的身份验证

PyPi deployment from Travis CI: Invalid or non-existent authentication

通过 Travis CI 部署到 PyPi 时出现以下错误:

HTTPError: 403 Client Error: Invalid or non-existent authentication information. for url: https://upload.pypi.org/legacy/

我已经按照 pypi deployment and have setup my PyPI username and password, with the latter encrypted per the password encryption docs 的 Travis CI 文档进行操作。密码没有任何值得转义的字符,但无论如何我都尝试转义所有字符。

似乎没有任何效果,有什么建议吗?

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 无效身份验证错误:

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/

密码只能是字母数字字符。

在配置中丢失"server"。

server: https://upload.pypi.org/legacy

联系 travis-ci 支持人员后,他们注意到该存储库首先针对 travis-ci.org 而不是 travis-ci.com 存在。这给身份验证带来了问题。

解决方案是显式 运行 travis encrypt 反对 travis-ci.com:

travis encrypt <<password>> --com --debug

调试标志显然是可选的,并在终端中提供一些附加信息。