前言

软件最终都会有交付的形式,有的是用tar包,有个是以目录,有的是封成一个文件包,从大多数使用场景来说,直接打包成软件包的方式是最简单,也是最不容易出错的,路径可以在包里面写死了

实践

关于打包的资料网上很多,而封包的方式也很多有spec文件方式,有fpm打包方式,本篇记录的是通过setup.py的方式打包的,因为最近出了小工具,所以进行了相关的尝试,这里记录一下

首先创建一个setup.py文件,写上一些基础内容

[root@test redmine]# cat setup.py
# coding:utf-8
#from distutils.core import setup
from setuptools import setup, find_packages setup(
name='issue-check',
version='2020-0403-1419',
description='This redmine issue-check',
author='zphj1987',
author_email='zphj1987@gmail.com',
license='MIT',
url='https://github.com/zphj1987/issue-check.git',
py_modules=['issue-check','issue-check-pretty'],
data_files=[('/opt/issue-check/',['issue.conf.sample']),('/opt/issue-check/',['README.md'])]
)

上面的就是把当前目录的issue-check.py和issue-check-pretty.py打包进rpm,把issue.conf.sample打包到/opt/issue-check/这个路径下面

通过data_files可以进行安装路径的控制,而上面的py_modules则不在这里进行控制了,需要增加一个配置文件setup.cfg

[install]
install-lib=/opt/issue-check

修改以后,安装路径就指定到/opt/issue-check下面了,如果不做控制,就会默认安装到python的执行目录里面去,上面的这些简单的控制以后就可以开始封包的命令了

python setup.py bdist_rpm

执行完了后在当前目录的dist目录下面就会生成相关的rpm包和源码的rpm包,这个实际上也是调用了spec,然后进行的相关打包工作,只是在这个之上再封装了一层

暂时未解决的问题

默认这样的打包方式会生成egg相关的文件,并且打包过程中会编译pyc,pyo等文件,暂时还没找到方法简单的去把这些文件给去掉,不过也不会太大的影响

总结

如果是做py的软件包,建议还是能够封包后再输出

变更记录

Why Who When
创建 武汉-运维-磨渣 2020-04-03

python脚本打包成rpm软件包的更多相关文章

  1. 将Python脚本打包成可执行文件

    Python是一个脚本语言,被解释器解释执行.它的发布方式: .py文件:对于开源项目或者源码没那么重要的,直接提供源码,需要使用者自行安装Python并且安装依赖的各种库.(Python官方的各种安 ...

  2. Python脚本打包成exe执行文件

    需求 一个教辅目录结构检查工具,目录结构是[书籍]-[章节]-[题目|答案]-[*.jpg],后台有个异步处理的服务,需要强依赖这个目录结构. 书籍解析是单独的pipeline,日志对用户不可见,这里 ...

  3. PyInstaller把Python脚本打包成可执行程序教程

    一.说明 一直以来都有把.py文件打包成.exe文件的想法,但总是不够强烈,每次拖着拖着就淡忘了. 昨天帮硬件部门的同事写了个脚本,然后今天下午的时候,他问有没有办法把脚本打包成可执行文件,这样方便以 ...

  4. 把 Python 脚本打包成可以直接双击运行的 .exe 文件 【转】

    因为最近要用到 Python 脚本,所以自己学习了一下,顺便学习如何把它打包成 .exe 可执行文件,达到双击运行的效果,网上找了资料,保存下来学习用,原文出处:https://baijiahao.b ...

  5. 把python脚本打包成win可执行文件

    前几天有个朋友找我写一点小东西,写好后把代码发他帮他搞了半天,结果愣是没听懂,就找到了这个办法. 1.导入pyinstaller包, pip install pyinstaller 2.进入到你需要打 ...

  6. 【转载】将python脚本打包成exe文件

    exe文件也就是可以直接执行的文件.通常我们编好的带py后缀的脚本文件都是需要在有python的环境下执 行,每次通过Win + R打开运行窗口再输入powershell打开控制台,再千辛万苦地cd ...

  7. 将Python脚本打包成可执行文件——转载

    Python是一个脚本语言,被解释器解释执行.它的发布方式: py文件:对于开源项目或者源码没那么重要的,直接提供源码,需要使用者自行安装Python并且安装依赖的各种库.(Python官方的各种安装 ...

  8. python脚本打包成exe可执行文件

    1. 工具pyinstaller (pip install pyinstaller) 2.生成exe (pyinstaller -F -w Capturing_PDFs.py) 参数 -F 生成单个文 ...

  9. Python 程序打包成 exe 可执行文件

    Python 程序打包工具 Python 是一个脚本语言,被解释器解释执行.它的发布方式: .py 文件:对于开源项目或者源码没那么重要的,直接提供源码,需要使用者自行安装 Python 并且安装依赖 ...

随机推荐

  1. day33 Pyhton logging 模块和包

    一内容回顾 try/except try/except/else try/finally try/except try/except/finally try/except/else/finally 报 ...

  2. C++字符串操作小结

    忽略大小写比较大小 库函数strcasecmp和_stricmp: 这两个函数都不属于C++标准库,strcasecmp由POSIX引入,windows平台则定义了功能等价的_stricmp.用法和C ...

  3. anaconda 取消每次默认启动base环境

    安装conda后取消命令行前出现的base,取消每次启动自动激活conda的基础环境 方法一: 每次在命令行通过conda deactivate退出base环境回到系统自动的环境 方法二 1,通过将a ...

  4. 面经分享:看非科班研究生如何转行斩获 ATM 大厂的 Offer ?

    前言 先介绍一下自己的情况吧,本科和研究生都是通信专业,本科是某 Top2,研究生是香港某大学.了解了通信行业的就业情况和工作内容后,大概今年3月份的时候开始想转互联网. 本人相关的基础情况是:学校学 ...

  5. IDEA 半天卡住buid(编译)不动

    [号外号外!] 最终解决办法并不复杂,关键在于"遇见问题,怎么样层层分析,多条路径试错,最终解决问题的思路或者能力"--资深码农的核心竞争力之一 背景 今天结束完最近2个月的一个项 ...

  6. Linux用户和组管理命令-切换用户su

    切换用户或以其他用户身份执行命令 su: 即 switch user,命令可以切换用户身份,并且以指定用户的身份执行命令 格式: su [options...] [-] [user [args...] ...

  7. .Net Mvc学习——ASP.NET MVC中常用的ActionResult类型

    一.定义 MVC中ActionResult是Action的返回结果.ActionResult 有多个派生类,每个子类功能均不同,并不是所有的子类都需要返回视图View,有些直接返回流,有些返回字符串等 ...

  8. SpringBoot第二集:注解与配置(2020最新最易懂)

    2020最新SpringBoot第二集:基础注解/基础配置(2020最新最易懂) 一.Eclipse安装SpringBoot插件 Eclipse实现SpringBoot开发,为便于项目的快速构建,需要 ...

  9. [Luogu P3899] [湖南集训]谈笑风生 (主席树)

    题面 传送门:https://www.luogu.org/problemnew/show/P3899 Solution 你们搞的这道题啊,excited! 这题真的很有意思. 首先,我们可以先理解一下 ...

  10. [Luogu P2891/POJ 3281/USACO07OPEN ]吃饭Dining

    传送门:https://www.luogu.org/problemnew/show/P2891 题面 \ Solution 网络流 先引用一句真理:网络流最重要的就是建模 今天这道题让我深有体会 首先 ...