以前通过 pip 安装的时候总是很羡慕,别人的代码使用起来好方便啊,那时候觉得代码要提交到 pip 平台去管理肯定需要审核吧? 后来了解到自己的代码要可以 pip 安装不需要审核,只需要遵循几个步骤就能轻松实现:
- 准备代码包
- 通过 setuptools 打包
- 通过 twine 上传 (需要 pypi 账号密码)
重点操作:
- setup.py 的编写
- python setup.py sdist 打包
- twine upload dist/* 上传
准备代码包
首先准备好代码目录,一般需要包含以下几部分:
- 代码包
- setup.py
- README.md
- LICENSE
整体的目录结构类似于这样:
setup.py 主要是打包时候需要运行的程序,可以在 官方文档 查看具体用法。
里面的内容是这样的:
long_description 表示上传的包的使用说明,上传完成以后会在 pypi 网站上显示出来。
一般来说,可以直接读取 READ.md 文件当中的内容作为 long_description:
with open('README.md', 'r') as fh:
long_description = fh.read()
packages 是你的代码包含的所有的包。这些包在 pip 安装以后可以直接导入。 比如项目下面的包名叫 webdrivers, 通过 pip 安装好以后可以通过 import webdrivers 导入包。
import webdrivers
print(webdrivers.chrome)
LICENSE 的种类有很多,可以在 choosealicense 去选择自己想要的许可,一般 MIT, Apache, GNU GPLv3 这些用得多。这些许可都是有现成模板的,直接复制就可以。
其他可能还会用到的一些参数:
- keywords, 帮助别人搜到你的包
- package_data, 包依赖的数据文件
- entry_points, 定义命令行
通过 setuptools 打包
准备好文件之后,就可以通过 setuptools 打包了。先进入项目目录下,能找到 setup.py 这个文件, 执行:
python setup.py sdist
注意这里不要使用虚拟环境去执行,使用系统的 python 命令。执行成功时,可以看到会生成一个 dist 文件。
通过 twine 上传
打包好了以后就可以把 dist 当中的文件上传到 pypi 了。
步骤1:
先在 pypi网站 注册账号。
步骤2:通过 pip install twine,安装好 twine 包。 twine 是把代码上传到 pypi 的工具。
步骤3:进入项目目录,twine upload dist/* 上传 dist 文件。 在 windows 下用反斜杠表示路径:twine upload dist\*
成功之后,可以在 pypi 搜索到你的包了:
通过 pip 安装:
欢迎来到testingpai.com!
注册 关于