![c598d6ae9ddb5f6636bcbdbe7b4aa1f0.png](https://i-blog.csdnimg.cn/blog_migrate/bd46463ba4323ec5e9564e461d51ec02.jpeg)
作为测试开发人员,我们产出的测试工具大多数情况是面向测试部门或团队发布的。较以往,只是将整个工具模块上传至Git或SVN,测试人员进行下载,并且根据requirements文件安装依赖库,然后才能使用该工具,工具交付、安装成本较高。
本文主要介绍如何对模块进行打包,生产.whl文件,直接可以通过pip install *.whl进行安装,另外,还可以将打好的包上传到官方仓库 PyPI中。
Wheel和Egg都是python的打包格式,根据官网说明,Wheel是发行版Python的新标准并且将要取代.egg,Wheel现在是Python的二进制包的标准格式。
Wheel安装
pip install wheel
模块目录结构说明
- setup.py :打包配置文件
- setup.cfg:包含了构建时候的一些默认参数,无可不添加该文件.
- MANIFEST.in:额外需要打包的文件,无可不添加该文件.
- README.md:项目说明文档
- LICENSE.txt:项目许可说明文件,无可不添加该文件.
- 项目源码:模块源码目录
![a5dc0a3074944bc11a7139f21c55c581.png](https://i-blog.csdnimg.cn/blog_migrate/5b42e9f56c9d8632abdde590abdb0615.jpeg)
目录结构图
![80c71b459c73592798708506cef2b106.png](https://i-blog.csdnimg.cn/blog_migrate/9f7d8aa6d8424a0b4c48820d871e0ac9.jpeg)
setup.cfg
![b316aaaa3c15af4c5e2632ffd589ebb5.png](https://i-blog.csdnimg.cn/blog_migrate/7758045fa2d307cc7f6c85b6ab1034f3.jpeg)
MANIFEST.in
setup.py 示例
主要配置内容:
- name:项目名称,也是最终在 PyPI 上搜索的名称。
- version:版本号,一般由“主版本号、子版本号、修正版本号”三部分组成。
- author:作者姓名。
- description:项目的简短描述,一般一句话就好,会显示在 PyPI 上名字下端。
- url:通常为项目的GitHub、文档等链接
- packages:列出项目内需要被打包的所有package。
- package_data:依赖数据文件,数据文件须放在项目目录内且使用相对路径。
- data_files:如果数据文件不存在于项目目录内,则使用 data_files 参数或者 MANIFEST.in 文件进行管理。
- install_requires - 说明项目的依赖包,安装包时pip会自动安装。
示例如下:
![8ba0b50b0eddd52d66f1b2eed38a2497.png](https://i-blog.csdnimg.cn/blog_migrate/21510fbc77af4ec565e89b610e516d84.jpeg)
setup.py
生成whl文件
使用 bdist_wheel 打包
python setup.py bdist_wheel
![3f6c187208011428afb9feb7f66f563d.png](https://i-blog.csdnimg.cn/blog_migrate/1c3c814155c66d3b0b887f6ddbd5c48a.jpeg)
执行结果部分截图
执行完成后,目录结构如下:
![739abf00f5d81845c551b2f684f84133.png](https://i-blog.csdnimg.cn/blog_migrate/c93d386e7b7956a3a7b51046e17c88b1.jpeg)
安装部署
我们将打包好的.whl对外发布,使用者可以通过pip进行安装部署。
pip install *.whl
![a8c682686cb4534fce2f70f1b8b0209c.png](https://i-blog.csdnimg.cn/blog_migrate/593341136b8baace2a88cd43a6d0f182.jpeg)
执行结果截图
若对你有所帮助,欢迎大家评论、留言。