教你发布一个包

举报
feichaiyu 发表于 2019/10/14 19:20:50 2019/10/14
【摘要】 学习了安装第三方包的各种方法,是不是很想自己发布一个包到 Pypi 中?如果自己的成果能够让更多人使用,那是多么让人高兴,这篇文章介绍发布包的方法。本文主题如下:编写一个包(Python 源代码),但不是本文的重点。编译包,观察编译后的文件。发布包,发布的包可以有多种类型。如何在 Pypi 中查看已发布的包。再一次申明:本文编写的包在 Python2 环境下测试通过,实际上这个包比较简单,在...

学习了安装第三方包的各种方法,是不是很想自己发布一个包到 Pypi 中?如果自己的成果能够让更多人使用,那是多么让人高兴,这篇文章介绍发布包的方法。

本文主题如下:

  • 编写一个包(Python 源代码),但不是本文的重点。

  • 编译包,观察编译后的文件。

  • 发布包,发布的包可以有多种类型。

  • 如何在 Pypi 中查看已发布的包。

再一次申明:

  • 本文编写的包在 Python2 环境下测试通过,实际上这个包比较简单,在 Python3 下也能运行。

  • 本文知识点可能陈旧,比如 Python Pypi 官方已做了很大改变。

1:编写包源代码

这篇文章主要描述如何发布一个包,不描述如何编写一个包,如果你没有代码(只想学习如何发布包),可下载下面的示例。

屏幕快照 2019-10-14 下午7.08.29.png

可以认为下载的源码就是读者自己编写的,然后在本地测试、生成、发布包。

运行下列命令解压缩,并将代码放到特定目录:

屏幕快照 2019-10-14 下午7.08.45.png

2:查看 setup.py

为了生成和发布包,必须编写 setup.py 文件,编写该文件必须依赖于 setuptools 包(还记得上一篇文章讲解的 Python 官方包管理工具),这个包本身也是一个 Python 包。

屏幕快照 2019-10-14 下午7.08.57.png

望文生义,不过多讲解相应的参数。

3:测试本地包

首先将该代码生成一个本地包,然后编写代码测试该包的功能。

在开发模式下安装包:

屏幕快照 2019-10-14 下午7.09.08.png

观察安装后生成的文件:

  • /usr/local/lib/python2.7/dist-packages/ywdblogmath.egg-link

  • /usr/local/lib/python2.7/dist-packages/easy-install.pth

这二个文件包含的内容就是 /root/python(一个软连接)。

编写测试文件 example.py :

屏幕快照 2019-10-14 下午7.09.21.png

然后运行 example.py:

屏幕快照 2019-10-14 下午7.09.32.png

4:配置 pypi

(1)为了发布包,必须在 pypi.org 注册一个用户,注册邮箱需要验证。

(2)配置 $HOME".pypirc" 文件:

屏幕快照 2019-10-14 下午7.09.45.png

5:发布包

在发布包之前,运行下列命令了解所有可用的命令:

屏幕快照 2019-10-14 下午7.09.57.png

先编译包:

屏幕快照 2019-10-14 下午7.10.06.png

运行完成后生成 /root/python/build 目录,所以编译的文件保存在该目录下。

(1)生成 tar.gz 包

屏幕快照 2019-10-14 下午7.10.13.png

运行后产生下列文件:

  • /root/python/dist/ywdblogmath-0.1.tar.gz

  • /root/python/ywdblogmath.egg-info (python setup.py egg_info 命令也会生成该文件)

(2)生成 egg 包

屏幕快照 2019-10-14 下午7.10.58.png

运行后产生下列文件:

  • /root/python/dist/ywdblogmath-0.1-py2.7.egg

  • /root/python/ywdblogmath.egg-info (python setup.py egg_info 命令也会生成该文件)

(3)生成 wheel 包

屏幕快照 2019-10-14 下午7.11.54.png

运行后产生下列文件:

  • /root/python/dist/ywdblogmath-0.1-py2-none-any.whl

  • /root/python/ywdblogmath.dist-info

最后发布包(任何一个命令都可以):

屏幕快照 2019-10-14 下午7.12.08.png

至于发布什么类型的包,读者自己决定,如果想让所有的包安装工具(比如 pip、easy_install )都能安装你发布的包,可同时发布这三种类型的包。

登录 pypi.org 查看发布的包,如图(包版本号忽略):

1.png在发布包的时候,可能会遇到很多命令行提示的错误,这些内容不是本文的重点,另外注意 setpy.py 中的包版本号,可以测试发布多版本的包。



本文转载自异步社区。

文链接:https://www.epubit.com/articleDetails?id=N2761a573-fc41-4a21-9897-57d640da957a

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。