首页 > 其他分享 >Pypi配置API Token

Pypi配置API Token

时间:2024-07-09 10:53:17浏览次数:16  
标签:pypi Pypi Token upload token API https

技术背景

在许久之前写的一篇博客中,我们介绍过使用twine向pypi上传我们自己的开源包的方法。最近发现这个方法已经不再支持了(报错信息如下所示),现在最新版需要使用API Token进行文件上传,这里大致介绍一下配置的方法。

$ python3 setup.py check
$ python3 setup.py sdist bdist_wheel
$ twine upload --repository-url https://upload.pypi.org/legacy/ dist/*
Uploading distributions to https://upload.pypi.org/legacy/
Enter your username: dechin
Enter your password:
Uploading hadder-3.4-py3-none-any.whl
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 22.0k/22.0k [00:01<00:00, 20.9kB/s]
Error during upload. Retry with the --verbose option for more details.
HTTPError: 403 Forbidden from https://upload.pypi.org/legacy/
Username/Password authentication is no longer supported. Migrate to API Tokens or Trusted Publishers instead. See https://pypi.org/help/#apitoken and https://pypi.org/help/#trusted-publishers

Pypi主页登录

因为许久没有登录,所以很多人登录Pypi主页的时候可能需要添加一下双因子认证:

点击这个生成覆盖码的按钮,会生成一系列的一次性覆盖码,建议保存到本地:

这个覆盖码,是用来修改账号配置的,跟我们上传whl包没有关系。但是每修改一次账号配置,就会使用一个覆盖码。然后选择继续:

我们选择一个覆盖码输入,用于配置双因子认证:

双因子认证模式有两种,一种是应用认证,一种是设备认证,这里如果使用使用的是Win11操作系统,可以选择设备认证,然后用Windows Hello进行认证:

点击设定设备:

这样就完成了Pypi账号登录和双因子认证的安全设定。

API Token获取

在登录Pypi主页之后,在账号设定界面往下拉,找到API tokens选项

选择添加API token,可以给这个token设定一个专门的用途名称,还可以分仓库管理token。不过这里我为了方便,直接统一使用一个token进行上传:

然后就会生成一个token:

配置API Token

其实官方推荐的方法是把Token保存到~/.pypirc文件里面去,像这个样子:

但是不知为何,在我的环境下这个方法不奏效。尝试过在twine upload的时候把配置文件也加上,但还是不起作用,有知道的高手可以方便评论区告知一下原因。最后我使用的是keyring配置的方法(keyring是安装twine的时候一起安装了,不需要自己再去手动安装):

$ keyring set https://upload.pypi.org/legacy/ __token__
Password for '__token__' in 'https://upload.pypi.org/legacy/':

账号名就是__token__,密码就是那一串token复制粘贴进来。最后,还是成功的完成了upload:

$ twine upload --repository-url https://upload.pypi.org/legacy/ dist/*
Uploading distributions to https://upload.pypi.org/legacy/
Uploading hadder-3.4-py3-none-any.whl
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 22.0k/22.0k [00:02<00:00, 8.98kB/s]
Uploading hadder-3.4.tar.gz
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 22.5k/22.5k [00:01<00:00, 14.9kB/s]

View at:
https://pypi.org/project/hadder/3.4/

总结概要

这篇文章介绍了新版Pypi上传Python编译后的whl包的操作流程,主要内容为登录设置双因子认证,以及获取API Token并使用token上传whl包的方法。

版权声明

本文首发链接为:https://www.cnblogs.com/dechinphy/p/pypi-api.html

作者ID:DechinPhy

更多原著文章:https://www.cnblogs.com/dechinphy/

请博主喝咖啡:https://www.cnblogs.com/dechinphy/gallery/image/379634.html

参考链接

  1. https://packaging.python.org/en/latest/specifications/pypirc/

标签:pypi,Pypi,Token,upload,token,API,https
From: https://www.cnblogs.com/dechinphy/p/18291207/pypi-api

相关文章

  • Vue2和Vue3区别的理解和学习1-API结构
    API结构Vue2采用选项式API,包括data、methods、mounted等,而Vue3则引入了组合式API,主要使用setup函数。这种变化使得代码组织更加模块化,更易于复用和维护。选项式API(OptionsAPI)包含多个选项的对象来描述组件的逻辑。选项所定义的属性都会暴露在函数内部的this上,......
  • ollama api generate 和 api chat 的区别
    /api/chat和/api/generate这两个API端点的主要区别在于它们的设计目的和处理上下文的方式: /api/generate用途:这个端点主要用于生成单个文本片段。它接收输入并返回基于该输入的模型生成的文本,通常不考虑之前的消息历史或对话上下文。功能:它可以用于各种生成任务,如文章......
  • Apispec,一个用于生成 OpenAPI(Swagger)规范的 Python 库
    目录01什么是Apispec?          为什么选择Apispec?安装与配置02Apispec的基本用法        生成简单的API文档1、创建Apispec实例2、定义API路由和视图3、添加路径到Apispec集成Flask和Apispec1、安装Flask和Flask-......
  • python C API常用函数介绍
    PythonCAPI提供了一组函数和宏,允许开发者在C或C++代码中与Python解释器进行交互。以下是一些常用的PythonCAPI函数和宏:1.**初始化和结束Python解释器**:-`Py_Initialize()`:初始化Python解释器。-`Py_Finalize()`:结束Python解释器。-`Py_SetProgramNam(cons......
  • 学习canvas(一些常用api)
    当然,以下是这些常用CanvasAPI的总结,按照Markdown格式编写:常用CanvasAPI总结1.获取绘图上下文constcanvas=document.getElementById('myCanvas');constctx=canvas.getContext('2d');//或'webgl'2.绘制矩形ctx.fillStyle='blue';ctx.fillRect(1......
  • 通过高德地图 JS API实现 鼠标绘制多边形
    效果图:  核心代码:<template><a-modaltitle="选择地图所在位置":width="width":visible="visible"@ok="handleOk"@cancel="handleCancel"cancelText="关闭"><divclass="location-map-box&......
  • nodejs登录成功生成token并验证
    目录1.安装必要的依赖包2.创建Express应用3.生成token4.使用`express-jwt`验证Token5.错误处理在Node.js中,nodejs登录成功生成token并验证通常涉及以下几个步骤:安装必要的依赖包:常用的库包括 `express`用于创建服务器,`jsonwebtoken`用于处理JWT(JSONWebToken),`expr......
  • Tool-Gitlab-重置数据库,修复server迁移token异常
    Tool-Gitlab-重置数据库,修复server迁移token异常迁移gitlab的server数据之后,导致token异常影响:修改工程配置信息,提交时页面报错502sudogitlab-railsdbconsole--databasemainDELETEFROMci_group_variables;DELETEFROMci_variables;UPDATEprojectsSETrunners_token......
  • 免费的壁纸API
    最近在给EasyDesktop增加背景的功能,考虑自己在服务器上部署壁纸,维护成本比较高,就找了几个免费的壁纸接口,体验还不错,这里简单记录一下.1.Bing壁纸API地址是:https://peapix.com/api使用起来比较简单,直接用fetch方法即可回去当日的bing壁纸列表,返回结构如下:[{......
  • Unity入门之重要组件和API(3) : Transform
    前言Transform类主要处理游戏对象(GameObject)的位移、旋转、缩放、父子关系和坐标转换。1.位置和位移1.1必备知识点:Vector3Vector3主要用来表示三维坐标系中的一个点或者一个向量。【声明】Vector3v1=newVector3();Vector3v2=newVector3(10,10);Vector3v3......