手把手教你将自己写的package上传到Pypi
第一篇Python笔记的时候,总结了怎么样去下载别人的第三方package到自己Python集成环境中,调用模块的功能。但是偶尔我们自己也会写一些功能性模块,把它变成一个轮子,让其他人共享调用。或者是自己想把自己一些常用的函数或者类存在一个固定的类似云端的地方,可以方便的调用。这个时候,我们可能就需要把我们自己的代码段封装成为一个正规的package ,上传到Pypi(专门管理Python第三方package的网站),尔后我们就可以利用第一篇笔记中的pip 命令直接安装使用啦。下面我就用最简单粗暴的图文方式来做一次展示吧。
1
首先,当然要去Pypi官网注册自己的账号,如果都没有账号,肯定是没有上传资格的,所以乖乖的先去注册账号先。
Pypi 官网地址https://pypi.python.org/pypi (有时候网站会被拦截,多试几次)
有账号的就登录,没有就先注册
这里千万要注意,密码的要求,长度不能小于8,必须是包含大小写的字母写和数字。
注册完成后,登录验证一下是否注册成功。
这是我自己登录成功后的显示,之前我上传过两个模块,所以显示在your packages 下面。
2
账号注册好以后,需要给自己的py文件写配置文件(setup.py)。简单来说就是写一些说明,主要包括目前的版本,作者,作者的联系方式,对你上传的模块的功能进行简单的描述等等。
当然我们要举个例子:
我先写一个简单需要上传的python 代码段,这里我写个非常简单的拆分日期为年月日的函数。(datesplit.py)
下面的是其配置文件
setup 配置文件有许多参数,这里我只列举了一些必填项和常用项,当然如果你需要发布的包很复杂,那么参数的设置和说明也要尽可能完整。完整的参数说明可以参考官方文档。
几点补充说明!!!
name必须是唯一的,允许使用数字和字母,推荐使用中划线(-)而不是下划线(_),因为pip安装只支持中划线,比如pip install my-pkg,为了不给自己找麻烦请听话。
version推荐遵循语义化版本号规则,简单说就像这样:1.0.1
作者姓名和邮箱地址不一定要和你的PyPI账号一致.
建议: 没有的参数不要像我上面为空,例如url,license 等,直接不用列出来,有填写内容的再保留,不然后面检测会报错或者警告!!!
配置文件setup.py 写好后和需要打包的文件放在同一个文件夹中。
2
接下来就是正式的打包上传,一般上传都是在cmd窗口通过命令来实现的。
在上传的文件所在根目录下打开cmd:
检测配置文件:
Python setup.py check
如果出现running check则表示正常, 一个警告可以暂时忽略。
2. 做dist 目录:
python setup.py sdist
没有报错的话会在打包的目录下出现dist 文件夹 和MANIFEST文件。由于配置文件setup.py 没有写readme 参数,所以有个警告,可以忽略掉,如果你有说明文档的话,可以放在同一个路径下,参数设置读入此文件内容即可。
3. 最重要的一步,上传命令
这里有两种方式(强烈推荐第二种!!)
第一种:(我以前用的,偶尔会报错,偶尔正常,so 不稳定)
python setup.py register sdist upload
选择用户名登录然后回车
纳尼!!!!报错了!!!
好吧,这就是第一种不稳定的方式,那么就排查下错误的原因
翻译过来就是我没有权限。。。网上大神给出的方法是创建用户验证文件~/.pypirc
在自己的用户目录下新建一个空白文件命名为,内容如下:
有兴趣可以试一下,既然第一个不行,我们就转第二个比较可靠的命令方法。
第二种:使用twine 命令
首先你需要pip insatll twine先安装这个命令包
接下来 cmd 输入twine upload dist/*命令
同样会提示你输入用户名和密码,这里需要注意你可能输出了密码但是不显示,没有关系,确认自己输入正确就可以,输入完成后回车等待上传。
当当当~~~当
没有错误提示,说明安装成功,那么我们去检验一下啦~~
转到最开始我登录Pypi的网站,刷新一下:
Bingo ! 成功
为了保险起见,我自己按照pip 命令下载安装应用一下:
妥妥滴~~