开启2FA后无法向TestPyPI上传包?求解决方案
解决TestPyPI开启2FA后的包上传认证问题
当TestPyPI账号开启双因素认证(2FA)后,纯密码、单独使用2FA验证码的方式都无法完成上传认证,正确的认证方式有两种,以下是具体操作:
一、API Token认证(个人上传首选)
这是最直接的手动上传方案:
- 登录TestPyPI账号,进入账号设置页面
- 找到「API Tokens」选项,点击「Add API Token」
- 填写Token名称(比如「OSToolBox上传令牌」),权限选择「Entire account」(全账号权限)或「Project: OSToolBox」(仅针对该包的权限)
- 生成Token后,立刻复制并保存——退出页面后无法再次查看
- 上传时,用户名固定填
__token__,密码填完整的API Token(不要修改格式、不要加空格)
以twine上传为例,命令如下:
twine upload --repository testpypi dist/* -u __token__ -p "你的API Token完整内容"
也可以把配置写入~/.pypirc文件,避免每次输入:
[testpypi] repository = https://test.pypi.org/legacy/ username = __token__ password = 你的API Token完整内容
之后直接执行twine upload --repository testpypi dist/*即可完成上传。
二、可信发布者认证(自动化/CI/CD场景首选)
如果用GitHub Actions等工具自动化上传,可设置可信发布者:
- 进入TestPyPI上你的
OSToolBox包的设置页面,找到「Trusted Publishers」 - 添加发布者,选择对应平台(比如GitHub),填写仓库地址和工作流名称
- 配置CI/CD工作流时,无需手动输入认证信息,平台会自动完成可信身份验证
为什么之前的方式失败?
- 401错误:TestPyPI开启2FA后,彻底禁用了纯密码登录,必须使用API Token或可信发布者替代
- 403错误:2FA验证码是配合密码的二次验证因子,但TestPyPI已关闭密码登录路径,单独输入验证码自然无效
内容的提问来源于stack exchange,提问作者NanBlanc
相关产品推荐
相关产品推荐

