使用Poetry发布Python包至PyPI时遇403认证失败问题
问题分析与解决
为什么发布时跳过账号密码输入?
Poetry发布时会优先读取已配置的PyPI凭据,不会再次弹出输入提示。如果之前配置过错误、过期的凭据,或者凭据存储出现问题,就会直接用无效信息发送请求,最终触发403认证失败错误。常见场景包括:
- 之前执行过
poetry config命令设置了错误的PyPI账号密码 - 配置了失效的PyPI API Token
解决步骤
检查现有PyPI配置
执行以下命令查看当前Poetry存储的PyPI相关配置:poetry config --list | grep pypi如果输出里包含
pypi-token.pypi、repositories.pypi.username或password项,说明存在预配置的凭据。清除无效配置
- 若配置的是API Token,执行清除命令:
poetry config --unset pypi-token.pypi - 若配置的是账号密码,执行清除命令:
poetry config --unset repositories.pypi.username poetry config --unset repositories.pypi.password
- 若配置的是API Token,执行清除命令:
重新触发凭据输入
执行发布命令(建议加上--build确保重新构建包),此时会弹出凭据输入提示:poetry publish --build注意:PyPI现在推荐使用API Token而非账号密码,你可以在PyPI账号设置页生成Token,输入时用户名填
__token__,密码填生成的Token即可。(可选)永久配置有效凭据
如果想避免每次发布重复输入,可通过命令永久配置API Token:poetry config pypi-token.pypi "你的PyPI API Token"
内容的提问来源于stack exchange,提问作者Ankit
相关产品推荐
相关产品推荐

