pypi 上传python包

最近准备使用

twine upload dist/*

命令上传一下自己更新后的python,结果显示报错:

HTTPError: 403 Forbidden from https://upload.pypi.org/legacy/
Username/Password authentication is no longer supported. Migrate to API Tokens or Trusted Publishers inst
ead. See https://pypi.org/help/#apitoken and https://pypi.org/help/#trusted-publishers
这个原因是PyPI现在不再支持用户名/密码认证,而是要求使用API Tokens或Trusted Publishers进行认证。

为此登录PyPI准备制作一个API Tokens,结果PyPI要求2FA验证。研究了一下终于明白是怎么回事。所谓2FA验证就是通过两种方式验证身份,第一种就是常用的固定密码,第二种是随时间变化的动态密码。 对于国外的用户来说可以用手机接受动态验证码,对国内的用户来说,这个动态验证码怎么生成呢?答案是通过安装和运行一个开源的python包来实时生成。具体步骤是

步骤1.1:安装开源包

$ pip install pyotp

步骤1.2:在pypi网站上点击 

在现实的二维下方会有一串字符串密钥,例如SC5GNDMEV2FPHHLZQW7IZ6UCFXFBNBVI,

步骤1.3:将这一串密钥拷贝至如下代码中执行

import pyotp
key = 'SC5GNDMEV2FPHHLZQW7IZ6UCFXFBNBVI'
totp = pyotp.TOTP(key)
print(totp.now())

步骤1.4:生成的结果6位数就是动态验证码拷贝至验证码输入框里。

如果验证不通过可能是因为操作系统的时间不准确造成的,可以通过右击电脑时间 调整日期时间,将自动设置时间-自动设置时区 打开。再重新运行验证码的生成程序。

步骤1.55:如果验证通过则前面那一串密钥 SC5GNDMEV2FPHHLZQW7IZ6UCFXFBNBVI 就是你今后的2FA身份验证的基础了,将这个密钥以及上面的代码都保存好,需要2FA验证时,就运行生成动态验证码。

接下来就是生成API Token并用于上传包。步骤如下:

 2.1 生成API Token

  • 访问 PyPI的账户页面
  • 点击 "Manage your API tokens" (管理你的API令牌)。
  • 点击 "Generate API token" (生成API令牌) 并为其命名。
  • 复制生成的令牌。

2.2  将令牌设置为环境变量

在Windows下设置环境变量,在“系统变量”或“用户变量”中点新建两个变量:

第一个变量:

变量名:TWINE_USERNAME

变量值:__token__

第二个变量:

变量名:TWINE_PASSWORD

变量值:你的API-TOKEN(确保不包括引号)

2.3  使用twine upload dist/*上传你的包到PyPI,twine将会使用你设置的TWINE_USERNAMETWINE_PASSWORD环境变量。

  • 20
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值