LinuxGod.net
Linux大神网——精选每一篇高品质的技术干货
  1. 首页
  2. 开源快讯
  3. 正文

来说一说Python的第三方第三方库可以按照python打包的目录结构要求来搭建

2022年12月23日 90点热度

文章目录如何打包和发布Python程序

在使用Python的过程中,我们经常需要做的一件事情就是通过pip来安装第三方的包。那么你是否也曾想过pip安装的包是怎么被打包并发布上去的呢?今天就来说一说Python的第三方包的打包与发布流程!

打包

想要发布一个第三方的包,首先你得有一个需要发布的项目。这个项目可以完成任何有意义的事情。比如:今天的样例就是一个Python的测试报告第三方库。

当我们把功能模块已经实现好之后,就可以按照python打包的目录结构要求来搭建了。具体步骤为:

这里以PyTestReport项目为例,介绍Python打包的目录结构linux系统好用吗,当然还可以有其它形式的目录结构。

PyTestReport
|-- pytestreport
|-- __init__.py
|-- HTMLTestRunner.py
|-- templates
|-- default.html
|-- static
|-- css
|-- default.css
|-- js
|-- default.js
|-- test
|-- LICENSE
|-- README.md
|-- setup.py

上面的目录结构就是一个典型的Python打包目录结构。其中最重要的是setup.py文件linux命令手册,而这个项目的功能模块就是pytestreport这个包。接下来最重要的就是如何编写setup.py文件。

qt打包发布_linux qt程序打包发布_qt 打包发布功能

编写setup.py文件

直接上PyTestReport的参考样例,然后我们再看看几个重要的字段就基本可以了!

#!/usr/bin/env python
# coding=utf-8
from setuptools import setup, find_packages

setup(
name="PyTestReport",
version="0.1.1",
keywords=("test report", "python unit testing"),
description="The HTML Report for Python unit testing Base on HTMLTestRunner",
long_description="The HTML Report for Python unit testing Base on HTMLTestRunner",
license="MIT",

url="https://github.com/five3/PyTestReport",
author="Xiaowu Chen",
author_email="five3@163.com",

package_dir={'pytestreport': 'pytestreport'}, # 指定哪些包的文件被映射到哪个源码包
packages=['pytestreport'], # 需要打包的目录。如果多个的话,可以使用find_packages()自动发现
include_package_data=True,
py_modules=[], # 需要打包的python文件列表
data_files=['pytestreport/templates/default.html', 'pytestreport/static/css/default.css', 'pytestreport/static/js/default.js'], # 打包时需要打包的数据文件
platforms="any",
install_requires=[ # 需要安装的依赖包
'Flask>=1.0.2'
],
scripts=[], # 安装时复制到PATH路径的脚本文件
entry_points={
'console_scripts': [ # 配置生成命令行工具及入口
'PyTestReport.shell = pytestreport:shell',
'PyTestReport.web = pytestreport:web'
]
},
classifiers=[ # 程序的所属分类列表
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
],
zip_safe=False
)

这个文件的上半部分字段可以自行查阅即可。这里有几个可能入坑的字段来看一下。更多详情可参考附录部分!

编译

项目目录结构和setup.py文件都就绪之后,就可以开始编译并打包了;首先最好升级下打包相关的基础库。

linux qt程序打包发布_qt 打包发布功能_qt打包发布

python -m pip install --upgrade pip
pip install --upgrade setuptools wheel

接着,从命令行进入项目的根目录,通过如下命令即可进行编译打包操作:

python setup.py sdist       # 打源码包
python setup.py bdist # 打二进制包
python setup.py bdist_egg # 打egg包
python setup.py bdist_wheel # 打wheel包

执行完命令之后,会在项目的根目录创建一个dist目录linux qt程序打包发布,所有打包的文件都存放在此目录下。

在打包后,可以本地进行安装和使用测试,当然你也可以通过如下命令直接安装:

python setup.py build
python setup.py install

qt 打包发布功能_linux qt程序打包发布_qt打包发布

发布

当我们的项目打包并测试完成之后,就可以开始发布之旅了!首先你得需要安装另一个基础库。

pip install twine

此外linux qt程序打包发布,你还需要在PYPI的官网上进行账号的注册!当然官方会建议你先在一个叫TestPYPI的测试镜像服务上先进行预发布。当在TestPYPI服务上发布成功并进行完安装和使用测试之后,再把项目包发布到PYPI服务上。

TestPYPI发布

首先在​​​​注册一个账户。然后在项目根目录执行如下命令:

twine upload --repository-url https://test.pypi.org/legacy/ dist/*
# entry your username and password

过程中会需要你输入注册的账号信息,等上传完成之后可以通过如下的方式来进行包的安装。

pip install --index-url https://test.pypi.org/simple/ PyTestReport

你也可以直接通过​​​​来查看你已经上传的项目,并通过点击[View]来查看项目的具体信息。

安装完成之后,则需要测试下安装包是否能正常的工作,指定的入口脚本是否安装并正常使用,如果一切正常那么恭喜你了发布到正式的PYPI服务了!

PYPI发布

linux qt程序打包发布_qt 打包发布功能_qt打包发布

同样的你需要在PYPI的官网​​​​注册一个账号。然后执行一个上传操作:

twine upload dist/*
# entry your username and password

上传完成之后通过如下命令可直接安装:

pip install PyTestReport

同样的,你也可以通过​​​​来查看和管理已上传的项目。

附录新书推荐

如何打包和发布Python程序_python

获取更多关于Python和自动化测试的文章,请扫描如下二维码!

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: python
最后更新:2022年12月23日

Linux大神网

每日更新,欢迎收藏♥ 不积跬步无以至千里,加油,共勉。

点赞
< 上一篇
下一篇 >

文章评论

您需要 登录 之后才可以评论

Linux大神网

每日更新,欢迎收藏♥
不积跬步无以至千里,加油,共勉。

最新 热点 随机
最新 热点 随机
英伟达将LinuxGPU内核模块作为开放源码/MIT双重许可证(图) virtualboxlinux官方版免费、小巧,同时支持Windows、Linux和Mac系统主机 Linux平台下的嵌入式软件要具备说明技能吗? 图解linuxlinux内核结构框图对内核框图有个总体的把握 linux虚拟机的安装步骤是什么?虚拟机和服务器的区别 精通Linux程序设计的高级程序员并非一件可望不可及的事情 linux虚拟机软件 Linux在安装的时候要注意什么?Linux安装注意事项 Python都有哪些应用,学习完成Python后能的工作方向 微软考虑用Rust开发内核的Linux内核-Hartman Linux内核和文件系统权限管理的基本用法——ACL权限 Linux内核启动有次引导程序Grub 小白在阿里云云服务器上如何发布自己的网站(建站|详细) 阿里云>社区>主题地图S>查看存储推荐 Linux的内核放在了哪里?/boot的启动目录一览 Linux中修改文件权限的命令、创建者所在组、所有人 linux到底难不难学呢?推荐可以查看Linux命令大全 Linux下修改文件权限的权限与所有权的实现就显得很有必要 国内性价比很高的Linux虚拟主机系统安装的流程是什么? 1.Linux磁盘分区和目录Linux发行版本之间的差别很少? 基于命令修改文件的权限命令-ld
Linux5.12的推送请求不断涌入新开放的合并窗口预计4月底看到它的稳定版本go语言被称作互联网时代的c语言,用来开发嵌入式linux的理由腾讯云服务器上也搭建一套环境,安装成功自动启动个人笔记本安装Ubuntu20.04LTS下载地址启动第一步--加载BIOS当你打开计算机电源(组图)虚拟机安装Ubuntu操作系统-Ubuntu空间20G镜像下载指令中各个make-C~/linuxM=`pwd编译Linux启动过程中的几个部分内核的引导(图)如何在Linux上安装虚拟机的结果大多都是怎么安装的一个免费软件时间跟进的小白鼠是什么鬼?专题计算机是如何启动的?、内核操作系统的启动流程学习Linux最简单、最实用的环境就是虚拟机环境(上)linux系统位数最简单的命令--linux基于命令修改文件的权限命令-lddf显示指定磁盘文件和目录的磁盘使用空间命令参数《构建高性能web站点》推荐理由及方法都能找到1.Linux磁盘分区和目录Linux发行版本之间的差别很少?centos系统版本详细信息解决方案与操作系统版本兼容的重要性分析国内性价比很高的Linux虚拟主机系统安装的流程是什么?Linux下修改文件权限的权限与所有权的实现就显得很有必要
0渗透操作0x02绕过disable_functions插件(组图) 101教育PPTLinux系统命令及其使用详解(大全)电脑钢琴超级老师 版本号的信息有以下几个:内核版本号编译器发行系统版本号 Windows中可以安装linux子系统,效率秒杀虚拟机,轻松使用生信软件 samba主机名称解析服务//samba/smb.conf UNIX网络编程卷1:套接字联网API第3版pdf百度网盘下载地址 如何查看linux查找文件夹命令(图)查看文件内容 如何让终端彻底的清静?(图)命令的方法 6种驱动开发时与设备注册、设备树相关的调试方法 2.5创建和配置虚拟机2.5.1创建虚拟机双击桌面的VMwarePlayer 3.3.mmap完成物理地址映射到用户虚拟地址空间上文件对应硬件外设 示例demo最简单的demo:线程终止的4种方式 我们还学会了检查系统的内核版本的Linux内核。 1.给ens33网卡配置静态IP、网关、DNS,检查是否生效 Linux上运行Windows可执行文件和运行可执行文件的基本信息开始了 Windows下默认的编码是GBK-8,怎么办? 【Linux基础知识】Linux内核版本命令(两种方法) linux解压zip文件命令 2015年上海事业单位医疗招聘考试:tar 老男孩教育怎么样有哪些课程?-八维教育 嵌入式Linux软件设计系统设计的一般流程是什么?(图)
标签聚合
命令模式 linux系统 虚拟机 linux服务器 文件目录 sudo 软件 shell 电脑 unix
书籍
课程
技术群
技术干货大合集↓
  • 2023年2月 / 1篇
  • 2023年1月 / 161篇
  • 2022年12月 / 187篇
  • 2022年11月 / 76篇

COPYRIGHT © 2023 linuxgod.net ALL RIGHTS RESERVED.