【Python包管理系列1】python打包发布到PyPI全过程(入门版)

article/2025/8/29 2:07:37

文章目录

  • 目的
  • 准备知识
    • PyPI
    • PyPA
    • setuptools
    • build
    • twine
  • 实战过程
  • 总结

目的

如果发布一个python包到pypi上,共他人使用,本文试图讲清楚。

准备知识

PyPI

官网地址:https://pypi.org/

全称Python Package Index(Python包索引),是 Python 编程语言的软件存储库。网站版权归Python软件官方基金会所有。

我们使用pip install安装的包,就是从这个站点(或它的镜像站)下载的,而这些包也都是其他开发者上传共享的。

这是一个公开的平台,只要注册一个账号,就有权限将包发布上去。下面我们就具体一步步做。

PyPA

官网文档地址:https://www.pypa.io/en/latest/
Github地址:https://github.com/pypa

全称Python Packaging Authority(python打包权利机构),这是一个开源Group,专门维护Python打包及发布所用到的一些工具。pip即由该团队维护,后文要用到的各种工具,基本都出自这个组织。

在这里插入图片描述

setuptools

官方文档:https://setuptools.pypa.io/en/latest/index.html
Github:https://github.com/pypa/setuptools

setuptools是PyPA提供的包构建系统,使用它,我们只需写一份配置文件(pyproject.toml or setup.cfg or setup.py)即可,不需要太去深究其内部。

build

官方文档:https://pypa-build.readthedocs.io/en/latest/index.html
Github:https://github.com/pypa/build

build由PyPA在2020年发布了第一个版本,它提供一个命令行构建命令python -m build,即可轻松构建发布文件。

在这之前,我们必须使用python setup.py进行包的构建,带来很多问题,目前setuptools官方文档已经不在推荐在不必要的情况加编写setup.py文件,尽量用pyproject.tomlsetup.cfg代替。
在这里插入图片描述

twine

官方文档:https://twine.readthedocs.io/en/stable/
Github:https://github.com/pypa/twine

twine是PyPA开发的一个PyPI交互程序,可以轻松将已build好的文件上传到PyPI,以供其他人下载。

实战过程

首先,安装前面提到的必要工具

pip install --upgrade build twine

撰写pyproject.toml文件

[project]
name = "pywencai"
version = "0.0.1"
dependencies = ["PyExecJS","requests","pandas"
]

梳理好宝目录结构

在这里插入图片描述
将包进行打包

python -m build

成功后,将其推送至pypi

twine upload dist/*

该命令需要你输入pypi的用户名和密码,没有的话可以免费注册

在这里插入图片描述
可以看到,包被成功发布到pypi,访问地址 https://pypi.org/project/pywencai/0.0.1/

总结

这是一个最简单的发布过程,并不一定会满足所有情况,比如我们想打包一些额外的文件,想撰写包的描述等,这些工作可能都是我们需要的。

但是,build工具的官方文档极其简单,并没有过多的关于这些配置的说明,实现起来很容易摸不到头脑。

所以,这里推荐另一个工具:Peotry,用它来管理包和发布包将会更简单,后面发文分享。


http://chatgpt.dhexx.cn/article/mnvcUYIH.shtml

相关文章

PyPy

pypy 原理 pypy 原理为何 PyPy 是趋势?即时编译: PyPy和它的未来PyPy is Hard to Understand结尾总之: GIL,即全局解释器锁(Global Interpreter Lock),是计算机程序设计语言解释器用于同步线程的工具&…

Linux系统安装DB2数据库详解

1、上传DB2安装文件 将 DB2 安装文件及 DB2 补丁文件上传到服务器上 打开终端对其进行解压 2、安装前注意事项 (1)要求服务器磁盘空间至少为1000M (2)安装之前不要创建 db2inst1、db2fenc 等用户 (3)db…

windows下db2创建数据库

windows下db2创建数据库 1.找到命令行dbcmd 打开电脑,进入电脑操作系统,使用快捷键组合WINR键可以直接打开运行,输入dbcmd命令行,即可直接打开db2命令行dbcmd。 2.使用db2start启动db2数据库 通过以上方法,在电脑…

db2数据库(db2数据库安装)

db2是什么,它和oracle有什么本质的区别? oracle和SQL SERVER都是用SQL语句可以编写数据库,但语法有区别,我楼上说的SQL SERVER说不稳定,也不一定吧~这里我说的都是正版,不过ORACLE确实是现在企业…

JDBC连接DB2数据库

前言 分享一个工作上遇到的问题,使用JDBC连接DB2数据库,我这里使用的是Gradle,我发现网上使用Gradle的太少了,大部分使用的是maven,不论使用哪一个,都建议下载jar包到本地,使用手动添加进项目里…

【windows版本】 db2数据库安装与使用

0.目录 1.安装DB2数据库1.创建数据库2. 配置链接参数3.工具链接4. 参考5.其他 说句真心话,真TMD讨厌IBM的软件,IBM的软件下载真是TMD不容易。要不是公司项目需求,谁TMD还喜欢用IBM的软件,真气人。 本文的目的: 1&#…

DB2数据库基本概念

http://db365.net/home.php?modspace&uid19鉴于CSDN无故删除博文,本博客不再更新,暂时迁至http://www.db365.net 1 DB2数据库基本概念 1.1数据库对象 关键的数据库对象包括:实例、数据库、节点组、表、视图、索引、模式、系统目录表。…

DBeaver连接db2数据库

DBeaver工具安装包: 链接:https://pan.baidu.com/s/1ruEF0dDkbYDy02-aYxuj8w 密码:l0t4 db2驱动包: 链接:https://pan.baidu.com/s/1OaSHGi7toIhKCk8fNEv-CQ 密码:tazm 安装好DBeaver工具后 1、新建连接 2、连接…

DB2数据库

DB2是IBM公司研制的一种关系型数据库系统,它主要应用于大型应用系统,具有很强的海量数据处理能力,具有较好的可伸缩性 教学地址 可支持从大型机到单用户环境,包括DB2工作组版(DB2Workgroup Edition)、DB2企…

socket绑定的ip为INADDR_ANY 的意义 htonl(INADDR_ANY)(0.0.0.0所有地址、不确定地址、任意地址)(htonl和htons区别)

INADDR_ANY 表示监听0.0.0.0地址,socket只绑定端口,不绑定本主机的某个特定ip,让路由表决定传到哪个ip(0.0.0.0地址表示所有地址、不确定地址、任意地址)(一台主机中如果有多个网卡就有多个ip地址&#xff…

ntohs, ntohl, htons,htonl的比较和详解

假设在x86平台上,有一个int型变量,在内存中的内部由低到高分别是:0x12,0x34,0x56,0x78当通过网络发送该数据时,正确的发送顺序是 0x78,0x56,0x34,0x12 X86 系列 CPU都是 little-endian 的,所以int 型变量值为 0x78563412, 网络发送数据时,采…

c语言中htonl函数,htonl()函数学习

今天在网上看到一篇关于htonl()函数的解释,感觉有道理,贴过来大家一起学习! htonl就是把本机字节顺序转化为网络字节顺序 h---host 本地主机 to 就是to 了 n ---net 网络的意思 l 是 unsigned long 所谓网络字节顺序(大尾顺序)就是指一个数在内存中存储的时候“高对低&#x…

ntohl()、htonl()函数

ntohl()将一个无符号长整形数从网络字节顺序转换为主机字节顺序, ntohl()返回一个以主机字节顺序表达的数。ntohl()返回一个以主机字节顺序表达的数。 htonl()将主机数转换成无符号长整型的网络字节顺序。本函数将一个32位数从主机字节顺序转换成网络字节顺序。 #…

Linux网络编程笔记 - 03 UDP - 主机字节序转换网络字节序函数

只要数据大于2个字节,发数据时一定要转成大端。 htons:一般用于转换端口号,short,2字节 htonl:一般用于转换ip,long,4字节 ntohl:将网络大端数据转换成主机可以识别的顺序,long = 4字节 ntohs:将网络大端数据转换成主机可以识别的顺序,short = 2字节 book@100a…

C语言详解:指针

文章目录 指针1. 指针的定义1.1 内存划分1.2 指针与指针变量1.3 指针的大小 2. 指针的类型2.1 指针解引用方面2.2 指针 整数方面2.3 总结 3 野指针3.1 野指针的定义3.2 野指针的成因3.3 如何规避野指针 4 指针运算4.1 指针 整数4.2 指针-指针4.3 指针关系运算 5 指针和数组6.…

C语言有关指针的详解笔记

指针 文章目录 指针1.指针是什么2.指针类型3.野指针野指针成因 4.指针运算5.指针和数组6.二级指针7.指针数组 1.指针是什么 在计算机科学中,指针是编程语言中的一个对象,利用地址,他的值直接指向存在电脑存储器中另一个地方的值。由于通过地…

初阶C语言——指针【详解】

文章目录 1.指针是什么2.指针和指针类型2.1 指针的解引用2.2 指针 -整数 3.野指针3.1 野指针成因3.2 如何规避野指针 4. 指针运算4.1 指针-整数4.2 指针-指针4.3 指针的关系运算 5. 指针和数组6. 二级指针7. 指针数组 1.指针是什么 指针理解的2个要点: 指针是内存中…

C语言——指针初阶详解

🐒博客名:平凡的小苏 📚学习格言:别人可以拷贝我的模式,但不能拷贝我不断往前的激情 目录 1. 指针是什么 2. 指针和指针类型 2.1指针类型的第一个意义 2.2指针类型的第二个意义 3. 野指针 3.1 野指针成因 3.2 如何…

C语言中指针的详解

文章目录 前提一.指针基础1.1 变量指针1.2 数据指针1.3 指针的本质1.4 指针数组1.5 指针的移动1.5 Scanf函数的解释 二.指针的进阶玩法2.1 二维指针2.2 结构体指针 结语 前提 指针,是C语言中的一个重要概念及其特点,也是掌握C语言比较困难的部分。指针也…

C语言:指针详解

目录 指针就是地址,口语中说的指针通常指的是指针变量 指针的定义以及指针类型 野指针 指针运算 a.指针/-整数 b.指针只能-指针,不能指针 指针与数组 二级指针 指针数组 指针的大小是固定的4/8个字节(32位平台/64位平台&#xff09…