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

2024-05-15 20:12

本文主要是介绍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的小技能就过完了,如果有什么问题欢迎在评论区中留言。

这篇关于2024一站式解决 python打包代码,发布到pypi的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/992809

相关文章

python管理工具之conda安装部署及使用详解

《python管理工具之conda安装部署及使用详解》这篇文章详细介绍了如何安装和使用conda来管理Python环境,它涵盖了从安装部署、镜像源配置到具体的conda使用方法,包括创建、激活、安装包... 目录pytpshheraerUhon管理工具:conda部署+使用一、安装部署1、 下载2、 安装3

Python进阶之Excel基本操作介绍

《Python进阶之Excel基本操作介绍》在现实中,很多工作都需要与数据打交道,Excel作为常用的数据处理工具,一直备受人们的青睐,本文主要为大家介绍了一些Python中Excel的基本操作,希望... 目录概述写入使用 xlwt使用 XlsxWriter读取修改概述在现实中,很多工作都需要与数据打交

使用Python实现在Word中添加或删除超链接

《使用Python实现在Word中添加或删除超链接》在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能,本文将为大家介绍一下Python如何实现在Word中添加或... 在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能。通过添加超

C#使用HttpClient进行Post请求出现超时问题的解决及优化

《C#使用HttpClient进行Post请求出现超时问题的解决及优化》最近我的控制台程序发现有时候总是出现请求超时等问题,通常好几分钟最多只有3-4个请求,在使用apipost发现并发10个5分钟也... 目录优化结论单例HttpClient连接池耗尽和并发并发异步最终优化后优化结论我直接上优化结论吧,

Python MySQL如何通过Binlog获取变更记录恢复数据

《PythonMySQL如何通过Binlog获取变更记录恢复数据》本文介绍了如何使用Python和pymysqlreplication库通过MySQL的二进制日志(Binlog)获取数据库的变更记录... 目录python mysql通过Binlog获取变更记录恢复数据1.安装pymysqlreplicat

利用Python编写一个简单的聊天机器人

《利用Python编写一个简单的聊天机器人》这篇文章主要为大家详细介绍了如何利用Python编写一个简单的聊天机器人,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 使用 python 编写一个简单的聊天机器人可以从最基础的逻辑开始,然后逐步加入更复杂的功能。这里我们将先实现一个简单的

基于Python开发电脑定时关机工具

《基于Python开发电脑定时关机工具》这篇文章主要为大家详细介绍了如何基于Python开发一个电脑定时关机工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 简介2. 运行效果3. 相关源码1. 简介这个程序就像一个“忠实的管家”,帮你按时关掉电脑,而且全程不需要你多做

Python实现高效地读写大型文件

《Python实现高效地读写大型文件》Python如何读写的是大型文件,有没有什么方法来提高效率呢,这篇文章就来和大家聊聊如何在Python中高效地读写大型文件,需要的可以了解下... 目录一、逐行读取大型文件二、分块读取大型文件三、使用 mmap 模块进行内存映射文件操作(适用于大文件)四、使用 pand

python实现pdf转word和excel的示例代码

《python实现pdf转word和excel的示例代码》本文主要介绍了python实现pdf转word和excel的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录一、引言二、python编程1,PDF转Word2,PDF转Excel三、前端页面效果展示总结一

在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码

《在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码》在MyBatis的XML映射文件中,trim元素用于动态添加SQL语句的一部分,处理前缀、后缀及多余的逗号或连接符,示... 在MyBATis的XML映射文件中,<trim>元素用于动态地添加SQL语句的一部分,例如SET或W