上传Python包到PyPi时报HTTP 403错误,不清楚API Token如何配置
报错原因
该403报错是因为twine未读取到正确的PyPI API令牌认证信息,可通过以下三种方式配置使用已获取的令牌:
方法1:命令行直接传入认证参数
执行上传命令时直接追加用户名和密码参数,用户名固定为__token__,不要替换为你的PyPI账号名,密码为你从PyPI复制的完整API令牌:
py -m twine upload --repository pypi dist/* -u __token__ -p 你的PyPI API令牌
方法2:配置.pypirc文件持久化认证
该方法配置后无需每次执行命令都输入参数:
- Windows系统:在
C:\Users\你的系统用户名目录下新建名为.pypirc的文件 - macOS/Linux系统:在用户根目录
~下新建名为.pypirc的文件
写入以下内容:
[pypi] username = __token__ password = 你的PyPI API令牌
注意:不要将该文件放入项目代码目录,避免不小心提交到代码仓库泄露令牌。
配置完成后直接执行原上传命令即可自动读取认证信息。
方法3:通过环境变量配置
适合自动化发布场景使用,设置两个环境变量即可:
- 变量名
TWINE_USERNAME,值为__token__ - 变量名
TWINE_PASSWORD,值为你的PyPI API令牌
配置完成后直接执行原上传命令即可。
异常排查
如果配置后仍报错,可检查以下项:
- API令牌是否在有效期内,已过期需要重新生成
- 令牌权限范围是否覆盖你要上传的包,项目范围令牌需要匹配你上传的包名
- 复制令牌时是否误加了前后空格、或者遗漏了字符
内容的提问来源于stack exchange,提问作者user16625329
相关产品推荐
相关产品推荐

