2024一站式解决 python打包代码,发布到pypi

2024一站式解决 python打包代码,发布到pypi

文章目录

  • 2024一站式解决 python打包代码,发布到pypi
  • 一、前言
  • 二、pypi账户注册与配置
    • 2.1 账户注册
    • 2.2 双因素认证
    • 2.3 API token生成
  • 三、代码打包
    • 3.1 准备代码
    • 3.2 编写setup.py文件
    • 3.3 LICENSE
      • 3.3.1 常见的开源许可证
    • 3.4 构建包
      • 3.4.1 环境安装
      • 3.4.2 打包
      • 3.4.3 上传包到pypi
  • 四、测试与更新
    • 4.1 上传pypi库测试
    • 4.2 库更新

一、前言

各位开发者你们好,在这个万众创新的时代,发布自己的代码到pypi上逐渐变越发常见,不过网上教程良莠不齐,受限于平常时间,只能简单整理一下,下面是具体步骤。

个人跑通pypi上传项目全流程大概耗时40分钟左右,请预留一定时间,跟完全流程。

二、pypi账户注册与配置

2.1 账户注册

在代码正式发布到pypi之前,你需要提前完成pypi账户注册和配置
pypi地址:https://pypi.org/
在这里插入图片描述
在这里按照信息填完,申请注册即可。
注:邮箱可能会被归类到垃圾邮箱。如果在收件箱没有找到可以看看垃圾邮箱。
在这里插入图片描述

2.2 双因素认证

注册账号,注册后,需要双因素认证,可使用恢复代码、usb、扫码(支持 TOTP 标准的常用扫码工具,Google Authenticator、Authy、Microsoft Authenticator、LastPass Authenticator)
本人的双因素认证是使用了:恢复代码和Microsoft Authenticator这个扫码工具
其他TOTP标准扫码工具集如下:https://pypi.org/help/#totp
在这里插入图片描述
认证流程的话就是下载后,扫认证码即可(很显眼这个码,不会认错的),具体使用哪个TOTP扫码工具各位酌情选择。

2.3 API token生成

在pypi账号设置,Account settings中,创建token,创建后记录好API token,在代码上传的时候会用到。
在这里插入图片描述

三、代码打包

3.1 准备代码

一个根目录,包含所有代码。

  1. 一个 setup.py 文件,其中包含有关您的包的信息(名称、版本、依赖等)。
  2. 可选的 README.md 或 README.rst 文件,说明您的项目。
  3. 一个 LICENSE 文件,说明您的包的许可证。
  4. 一个包含 Python 代码的子目录。
  • my_package/
    setup.py
    README.md
    LICENSE
    my_package/
    • init.py
      module1.py
      module2.py

3.2 编写setup.py文件

from setuptools import setup, find_packagessetup(name='my_package',version='0.1',packages=find_packages(),description='A simple example package',long_description=open('README.md').read(),# python3,readme文件中文报错# long_description=open('README.md', encoding='utf-8').read(),long_description_content_type='text/markdown',url='http://github.com/yourusername/my_package',author='Your Name',author_email='your.email@example.com',license='MIT',install_requires=[# 依赖列表],classifiers=[# 分类信息]
)

version:版本号。
my_package:包含 Python 代码子目录的名称。
description:描述。
long_description:读取readme文件
url:可不填
license:证书类型(下面说明)

3.3 LICENSE

在软件和开源项目中,LICENSE 文件非常重要,它定义了他人可以如何使用、修改、共享你的代码。LICENSE 文件通常包含了特定的许可证全文,这个许可证规定了对代码的使用权限和限制。

3.3.1 常见的开源许可证

  • MIT License:一种非常宽松的许可证,允许他人几乎无限制地使用你的代码。

  • GNU General Public License (GPL):要求任何分发的软件或其衍生品都必须开源。

  • Apache License 2.0:允许商业使用,但要求保留版权和许可证声明。

  • BSD License:一种简单的许可证,有几个不同的变体,但通常都很宽松。

一个典型的 MIT 许可证:

MIT LicenseCopyright (c) [year] [fullname]Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

在这个例子中,你需要将 [year] 替换为当前年份,[fullname] 替换为你的名字或组织名。

3.4 构建包

3.4.1 环境安装

pip install wheel
pip install twine  # twine 是一个用于上传包到 PyPI 的工具。
pip install setuptools 

3.4.2 打包

setup.py层级,执行命令:

python setup.py sdist bdist_wheel

3.4.3 上传包到pypi

twine upload dist/*

输入2.3 生成API Token
在这里插入图片描述
注:setup.py中,名称不能与已有的重复
上传成功后的运行示意图如下:
在这里插入图片描述

四、测试与更新

4.1 上传pypi库测试

pip install my_package

在这里插入图片描述
安装成功!

注:如果之前换了清华源,可能上传后要过一段时间才能从清华源安装。方式二就是临时从pypi进行下载如:

pip install folerhandle  -i https://pypi.org/simple

4.2 库更新

(1)更新的时候需要删掉之前生成的dist
在这里插入图片描述
(2)setup.py 上更新Version
(3)重新执行一遍3.4.2 打包和3.4.3 上传包到pypi

到这里这项上传到pypi的小技能就过完了,如果有什么问题欢迎在评论区中留言。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/703810.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

邦注科技 工业冷水机的风冷和水冷的区别介绍

工业冷水机在工业生产中扮演着重要角色,特别是在需要精确控制温度的应用中。风冷式冷水机和水冷式冷水机是两种常见的类型,它们之间存在一些显著的区别。 热交换的来源不同: 风冷式冷水机:热交换的来源是气体。它采用空气冷却方…

三方库移植之NAPI开发[2]C/C++与JS的数据类型转

通过NAPI框架进行C/C与JS数据类型的转换 OpenHarmony NAPI将ECMAScript标准中定义的Boolean、Null、Undefined、Number、BigInt、String、Symbol和Object八种数据类型,以及函数对应的Function类型,统一封装成napi_value类型,下文中表述为JS类…

rocketmq的存储和检索

messageId是rocketmq自动生成的。

使用vcpkg与json文件自动安装项目依赖库

说明 本文记录自己使用vcpkg.json文件自动安装依赖库并完成编译的全过程。 关于vcpkg是什么这里就不多详细解释,可以看一下专门的介绍及安装的文章,总之了解这是一个C的包管理工具就可以了。 流程 下面介绍从GitHub上克隆C项目以及为这个项目安装所需…

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-15.6讲 GPIO中断实验-GPIO驱动添加中断处理函数

前言: 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM(MX6U)裸机篇”视频的学习笔记,在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…

搭建域环境

文章目录 一、配置域控网络二、安装DNS服务三、安装域控四、新建用户五、新建域内机器六、限制域用户权限(登陆时间和登录机器) windows server 2008是基于windows vista开发的,windows server 2008 r2是基于Win 7开发的。域控为windows serv…

线性回归学习笔记

学习了王天一博士的机器学习40讲,做个小总结: 1、机器学习中,回归问题隐含了输入变量和输出变量均可连续取值的前提。 2、单变量线性回归,所有样本到直线的欧氏距离之和最小,即均方误差最小化。 3、最小二乘法的几何意…

光伏行业该如何起步?

随着全球对可再生能源的需求日益增长,光伏行业作为其中的佼佼者,正迎来前所未有的发展机遇。然而,对于新进入者或希望在这一领域有所建树的企业来说,如何起步并稳健发展是一个值得深思的问题。以下是一些关于光伏行业起步的建议。…

有什么比较方便的裁剪图片软件?7个软件教你轻松裁剪图片

有什么比较方便的裁剪图片软件?7个软件教你轻松裁剪图片 以下是七款比较方便的裁剪图片软件,它们可以帮助您轻松裁剪图片: 图片编辑助手:作为图像处理领域的佼佼者,这款软件提供了多种裁剪工具和功能。您可以使用其…

「Python绘图」绘制同心圆

python 绘制同心圆 一、预期结果 二、核心代码 import turtle print("开始绘制同心圆") # 创建Turtle对象 pen turtle.Turtle() pen.shape("turtle") # 移动画笔到居中位置 pen.pensize(2) #设置外花边的大小 # 设置填充颜色 pen.fillcolor("green&…

EasyExcel进阶教程

EasyExcel进阶教程 EasyExcel进阶教程概述一、关于表头1.1 多级表头1.2 ExcelProperties注解的index字段和order字段的第一个区别1.3 ExcelProperties注解的index字段和order字段的第二个区别1.4 表头单元格的合并二、动态表头三、样式设置3.1 表头样式设置3.2 数据样式设置Eas…

命令行中,Python 想使用本地环境,但总是显示为Anaconda的虚拟环境

电脑环境 Python 本地环境(Python3.9.5)Anaconda 虚拟环境(Python3.8.8) 遇到的问题 在cmd 中,我想在本地环境使用 Python、pip ,但它却是一直识别成Anaconda的虚拟环境。 解决方法 环境变量配置中&am…