pytest文档56-插件打包上传到 pypi 库
前言
pytest 的插件完成之后,可以上传到 github,方便其他小伙伴通过 pip 源码安装。如果我们想通过 pip install packages
这种方式安装的话,需上传到 pypi 仓库
pypi仓库
pip,全称是:python install packages,它是一个通用的 Python 包管理工具,是easy_install的替代品, 主要是用于安装 PyPI 上的软件包。
PyPI,全称是:Python Package Index,它是Python官方的第三方库的仓库,所有人都可以下载第三方库或上传自己开发的库到PyPI。
PyPI推荐使用pip包管理器来下载第三方库。
我们想把python包上传到pypi,需在 https://pypi.org/ 注册一个账号
整理项目结构
前面这篇https://www.cnblogs.com/yoyoketang/p/13638661.htmlpytest 插件的开发,就是一个半成品了
整个目录结构如下
pytest-change-report ├── LICENSE ├── README.rst ├── requirements.txt ├── setup.py ├── pytest_change_report.py ├── tests │ ├──__init__.py │ ├──conftest.py │ └──test_change_report.py
- pytest-change-report 是项目的包名
- LICENSE LICENSE文件是授权文件,比如:MIT license, APACHE license
- requirements.txt 依赖包,比如这个插件依赖pytest模块,可以写pytest==4.5.0
- README.rst 其实就是项目介绍和使用说明帮助文档
- setup.py python模块安装所需要的文件
- tests 是测试的目录
- pytest_change_report.py 插件实现功能的核心模块
代码写完测试没问题后,上传到github仓库,并打个v1.0的标签
打完 tag 标签,push 到 github 仓库,这样在 tag 目录就能看到 release 的记录了
打包
cd到项目的根目录,执行
python setup.py sdist build
执行完成后,在dist目录,会生成一个.tar.gz的压缩包,这个压缩包就可以通过 pip 安装了
也可以打包一个wheels格式的包,需要安装wheel包:
pip install wheel
执行以下命令打包
python setup.py bdist_wheel —universal
这样在dist目录生成一个 pytest_change_report-1.0-py2.py3-none-any.whl 文件,.whl 后置的文件也可以通过 pip 直接安装
上传发布
使用twine上传,先安装twine
pip install twine
上传输入指令,接着会提示输入账号和密码
twine upload dist/*
>twine upload dist/* Uploading distributions to https://upload.pypi.org/legacy/ Enter your username: yoyoketang Enter your password: Uploading pytest_change_report-1.0-py2.py3-none-any.whl 100%|█████████████████████████████████████████████████████████ ████████████████████| 5.56k/5.56k [00:00<00:00, 6.17kB/s] Uploading pytest-change-report-1.0.tar.gz 100%|█████████████████████████████████████████████████████████ ████████████████████| 5.15k/5.15k [00:01<00:00, 4.71kB/s] View at: https://pypi.org/project/pytest-change-report/1.0/
上传后访问地址 https://pypi.org/project/pytest-change-report/1.0/
查看pypi
打开上面的访问地址可以查看到已经上传成功
点 Homepage 可以跳转到 github 仓库去
这样小伙伴们就能直接使用 pip 安装了
pip install pytest-change-report
python 打包发布到 pypi 的就完成了,是不是很激动!
2020年第五期《python接口自动化+测试开发》课程,10月11号开学(火热报名中!)
本期上课时间:10月11号-1月3号,每周六、周日晚上20:30-22:30