如何发布自己的python包到PYPI?给自己编写工具代码

Rose ·
更新时间:2024-11-01
· 657 次阅读

前言

在我编写某一个项目的时候,时常会发现我又用到了之前某个项目中写过的功能,这个时候只能找到以前的项目,将代码copy到新项目中调用。这是一种非常low的做法,一方面,查找以前的代码,费时费力;另一方面,一看就是初学者喜欢干的,作为一个码龄也算有几年的人,还一直满足于以前这种做法,是没有办法进步的。
在这里插入图片描述
网上其实也有许多类似的教程,但总觉得不够简练、友好,很多地方没有解释清楚,因此干脆自己写一个,方便自己也方便他人。

本文同步发布在我的个人博客-求索,个人博客文章地址

基础准备

完成项目创立、工具代码编写、必要文件添加的操作

创建项目

这部分应该都驾轻就熟,可以直接创建一个目录或者用pycharm创建一个新项目,并在新项目下创建一个同名目录,例如我创建一个cptools项目,如下图所示:
file

为什么要在项目下新建目录而不是直接将代码放在总目录下?

总目录下除了存放代码外,一般还会存放README,LICENSE以及自动创建的build目录等,因此用这种方式将代码隔离开

编写工具代码

这时候就可以在项目中编写你的个人代码了,通常来说我们代码主要编写为类和函数两种,方便调用。我简单地创建了一个类和函数,放到一个.py文件中,如下图:
在这里插入图片描述

同时为了说明这是一个模块,需要添加一个__init__.py文件,我们经常看到一个包直接提供函数的形式,例如requests.get(),而不是requests.utils.get(),是因为在__init__.py中将该目录下所有文件的方法做了导入。如下图所示,我们将hello_cp.py的所有内容导入,这样我们就可以直接用cptools.hello()去调用hello函数了,如下图:
在这里插入图片描述

name属性是指定包名,和目录一样即可

setup.py

这个文件是用于告诉setuptools我们项目的版本号等信息的,创建在项目总目录下即可,如下所示:

在这里插入图片描述

LICENSE

这里是许可证,一般我们采用MIT LICENSE,原文内容可以点击官网查看

在这里插入图片描述

README.md

这部分是对整个项目的描述,可以编写对项目的介绍,这个时候你的目录应该和我下图显示的类似
在这里插入图片描述

打包发布到PYPI

到前面为止,必须的文件我们已经创建完毕,下面就是如何打包和发布的过程。

打包项目

在总目录下执行如下代码

python setup.py sdist

这时候就会生成一个dist目录,如下所示:
file

发布到PYPI 先点击这里注册一个pypi账号

需要验证邮箱

twine模块上传到pypitwine upload dist/* 在这里插入图片描述

如果没有twine,用pip install twine

查看我们的项目

到pypi上搜索cptools
在这里插入图片描述

这时候说明我们可以用pip install cptools安装我们的模块了

测试模块使用 pip install cptools
在这里插入图片描述 调用函数
在这里插入图片描述 总结

至此,一个完整的python包编写发布过程就结束了,以后有新的内容发布了依然是用相同的方法更新到pypi使用即可,不过记得更新你的版本号和github内容哦~


作者:GentleCP



工具 Python pypi

需要 登录 后方可回复, 如果你还没有账号请 注册新账号