You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

开启2FA后,如何通过twine向TestPyPI和PyPI上传Python包?

开启2FA后向TestPyPI/PyPI上传包的方法

当开启双因素认证(2FA)后,无法再用账号密码直接上传包,必须用API令牌或可信发布者两种方式,具体操作如下:

一、使用API令牌上传(手动上传首选)

1. 生成API令牌

  • 登录TestPyPI或PyPI账号,进入账户设置中的「API tokens」页面
  • 点击「Create token」,命名令牌(比如“upload-token”),权限选择「Entire account」(全账户权限)或指定单个包权限,生成后立即复制令牌(令牌只会显示一次,务必妥善保存)

2. 上传包的两种方式

方式1:命令行直接传入令牌

执行上传命令时,用户名固定填__token__,密码填你刚复制的API令牌:

  • 上传到TestPyPI:
    twine upload -r testpypi dist/* -u __token__ -p 你的TestPyPI_API令牌
    
  • 上传到PyPI:
    twine upload dist/* -u __token__ -p 你的PyPI_API令牌
    

方式2:配置本地.pypirc文件(无需每次输令牌)

在Windows用户目录(C:\Users\你的用户名)下创建.pypirc文件,填入以下内容(替换令牌为你自己的):

[distutils]
index-servers =
    pypi
    testpypi

[pypi]
repository = https://upload.pypi.org/legacy/
username = __token__
password = 你的PyPI_API令牌

[testpypi]
repository = https://test.pypi.org/legacy/
username = __token__
password = 你的TestPyPI_API令牌

之后直接执行原上传命令即可完成上传:

  • 上传TestPyPI:twine upload -r testpypi dist/*
  • 上传PyPI:twine upload dist/*

二、使用可信发布者上传(自动化场景首选)

适合CI/CD自动化上传(比如GitHub Actions、GitLab CI),无需手动管理令牌:

  1. 登录TestPyPI/PyPI,进入对应包的设置页面,找到「Trusted publishers」选项
  2. 点击「Add publisher」,选择你的代码托管平台(如GitHub),填写仓库名称、触发条件(比如指定分支、标签)
  3. 在CI/CD流程中配置上传步骤,以GitHub Actions为例,可使用官方动作完成自动上传,无需手动输入身份信息

内容的提问来源于stack exchange,提问作者zircon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 10:25:03