前言

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 的就完成了,是不是很激动!

pytest文档56-插件打包上传到 pypi 库的更多相关文章

  1. .NetCore WebApi利用Swagger文档实现选择文件上传

    介绍 实现这个功能主要还是依赖过滤器 在Swagger中利用 IOperationFilter 操作来实现文件上传 与之前处理结合Idr4授权一样的处理方式,不同的是授权处理的是Security,而文 ...

  2. pom中添加插件打包上传源码

    <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> ...

  3. Helium文档11-WebUI自动化-attach_file上传文件或图片

    前言 attach_file关键字根据官方介绍的作用是上传文件 入参介绍 def attach_file(file_path, to=None): """ :param ...

  4. Python程序的打包-上传到pypi

    pypi注册与配置 在pypi的官网:https://pypi.python.org/pypi 注册自己的账号激活账号之后,我们还需要将在本地配置一份文件 在用户的根目录创建文件 : .pypirc在 ...

  5. pytest文档4-Allure报告清除上一次数据

    前言 大家在执行过几次Allure之后就会发现,Allure的报告会把历史的执行结果都展示出来,但实际工作中我们可能只关心本次的结果,解决的话就需要修改一下执行命令了. 问题: 例如图中显示的第一条其 ...

  6. Taurus.MVC-Java 版本打包上传到Maven中央仓库(详细过程):3、Maven独立插件安装与settings.xml配置

    文章目录: Taurus.MVC-Java 版本打包上传到Maven中央仓库(详细过程):1.JIRA账号注册 Taurus.MVC-Java 版本打包上传到Maven中央仓库(详细过程):2.PGP ...

  7. jQuery上传插件,文件上传测试用例

    jQuery上传插件,文件上传测试用例 jQuery File Upload-jQuery上传插件介绍http://www.jq22.com/jquery-info230 jQuery File Up ...

  8. pytest文档7-pytest-html生成html报告

    前言 pytest-HTML是一个插件,pytest用于生成测试结果的HTML报告.兼容Python 2.7,3.6 pytest-html 1.github上源码地址[https://github. ...

  9. pytest文档3-pycharm运行pytest

    前言 上一篇pytest文档2-用例运行规则已经介绍了如何在cmd执行pytest用例,平常我们写代码在pycharm比较多 写完用例之后,需要调试看看,是不是能正常运行,如果每次跑去cmd执行,太麻 ...

随机推荐

  1. Mybatis-解决属性名和字段名不一致的问题

    解决属性名和字段名不一致的问题 目录 解决属性名和字段名不一致的问题 1. 问题 2. ResultMap 1. 问题 在数据库中,密码字段为pwd,而在实体类中为password package c ...

  2. Ubuntu更换国内源--解决终端下载速度慢的问题

    目前我已知的更改国内源的方法基本上就两种,第一种,把/etc/apt/sources.list文件里的源更换一下,改成阿里云或者其它源.第二种,更换在设置中software&updates(软 ...

  3. xargs命令学习,于阮一峰博客

    一.标准输入与管道命令 Unix 命令都带有参数,有些命令可以接受"标准输入"(stdin)作为参数. $ cat /etc/passwd | grep root 上面的代码使用了 ...

  4. [LeetCode]621. 任务调度器(贪心)

    题目 给定一个用字符数组表示的 CPU 需要执行的任务列表.其中包含使用大写的 A - Z 字母表示的26 种不同种类的任务.任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完.CP ...

  5. redis部署问题

    在部署redis哨兵的时候,一开始一直都是失败:杀死master进程后,没有选出新的master 日志如下 9985:X 18 Feb 20:14:42.409 # +sdown master mym ...

  6. centos7 yum安装redis及常用命令

    redis是什么 Redis是一种基于内存的数据结构存储,可持久化的日志型.Key-Value数据库.使用关系型数据库的站点达到一定并发量的时候,往往在磁盘IO上会有瓶颈,这时候配合redis就有一定 ...

  7. 微信小程序问题汇总

    一.消息推送配置 1.解析失败.请检查信息是否填写正确 服务器地址中不能使用其他的端口号,把端口号去掉,默认就是走80或443端口,另外这个地址需要外网访问,我使用了nat123映射了80端口,这个工 ...

  8. linux学习(四)Linux 文件基本属性

    一.引言 Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限. 为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定. 在Lin ...

  9. 刷题[BJDCTF 2nd]简单注入

    解题思路 打开发现登陆框,随机输入一些,发现有waf,然后回显都是同样的字符串.fuzz一波,发现禁了挺多东西的. select union 等 这里猜测是布尔盲注,错误的话显示的是:You konw ...

  10. C++实现职工管理系统(下)

    C++实现职工管理系统(下) 大家好,今天是在博客园的第十五天,博主今天给大家带来的是职工管理系统(C++)(下) 这次的随笔记录是实现(中)结语处说的几个功能,另外新增一个修改功能 此次要实现的功能 ...