如何把python脚本打包成rpm包

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何把python脚本打包成rpm包相关的知识,希望对你有一定的参考价值。

参考技术A 可以参考一下Python的Distutils模块

python 学习如何将Python脚本打包成可执行的exe文件#520表白代码

文章目录

前言

我们开发的脚本一般都会用到一些第三方包,可能别人也需要用到我们的脚本,如果我们将我们的xx.py文件发给他,他是不能直接用的,他还需要安装python解释器,甚至还要安装我们用的那些第三方包,是不是有点小麻烦?但是我们都知道,PC是可以直接运行exe文件的,这就为我们提供了一个便捷的方式。发源码又要求对方有对应的解释器,一般是行不通的,所以我们要把源码打包成可执行的.exe文件,方便广大用户使用。
总结一句话:打成exe之后,分享即可用。

安装pyinstaller

PyInstaller是一个十分有用的第三方库,它能够在Windows、Linux、 Mac OS X 等操作系统下将 Python 源文件打包,通过对源文件打包, Python 程序可以在没有安装 Python 的环境中运行,也可以作为一个 独立文件方便传递和管理。

1.首先安装pyinstaller
安装命令:pip install pyinstaller

2.保险起见,查看一下当前版本

安装成功后,就可以使用下面的命令了:

pyinstaller : 打包可执行文件的主要命令,详细用法下面会介绍。
pyi-archive_viewer : 查看可执行包里面的文件列表。
pyi-bindepend : 查看可执行文件依赖的动态库(.so或.dll文件)
pyi-… : 等等。

案例素材

安装好pyinstaller之后,我们当然要做个案例来测试一下~

setup.py素材

素材setup.py代码如下:

import tkinter as tk
import random
import threading
import time
def dow():
    window = tk.Tk()
    width=window.winfo_screenwidth()
    height=window.winfo_screenheight()
    a=random.randrange(0,width)
    b=random.randrange(0,height)
    window.title('520快乐')
    window.geometry("200x50"+"+"+str(a)+"+"+str(b))
    tk.Label(window,
        text='520快乐!',    # 标签的文字
        bg='Red',     # 背景颜色
        font=('楷体', 17),     # 字体和字体大小
        width=15, height=2  # 标签长宽
        ).pack()    # 固定窗口位置
    window.mainloop()
 
threads = []
for i in range(100):#需要的弹框数量
    t = threading.Thread(target=dow)
    threads.append(t)
    time.sleep(0.1)
    threads[i].start()


1.这里的setup.py默认的图标是我设置的pycharm属性
2.你可以把上面的代码复制到记事本,重命名后缀.py

ico素材

如果想要打包好的程序打包成自己想要的图标

就先准备一张图片放在文件夹中吧!

注意需要用.ico格式的图片才有效哦

我常用的在线转换工具
转换网站:https://convertio.co/zh/

转换演示

接着我们将代码所需要加载的文件资源【图片、.py、文档等】整合一下

放置在一个或多个文件夹下

如果你是用pycharm开发的代码,是多个文件夹的

pyinstaller打包

打开命令行窗口,将路径改为脚本所在文件夹: cd 文件夹路径

下图命令:pyinstaller -F -w -i heart.ico setup.py

命令模板解释:pyinstaller -F -w -i [图片名].ico [脚本名].py
参数解释
-i: 表示要加载的图标(没有选择图标可以不用写)

heart.ico:表示自己选择的图标名(没有选择图标可以不用写)

-F:表示打包成.exe可执行文件

-c:表示打包程序有窗口

setup.py:表示你要打包的py文件

找到生成的dist文件夹,里面就能看见exe文件了!

我们应该新建一个文件,里面放入所有资源文件夹和exe文件

测试无误后压缩发给别人,别人解压后就可以使用了!

例子中我们将exe例子文件夹压缩发送就ok了

最后看看演示效果:

完整的项目下载:https://download.csdn.net/download/qq_43674360/85422561

扩展了解

PyInstaller原理简介

1.PyInstaller其实就是把python解析器和你自己的脚本打包成一个可执行的文件,和编译成真正的机器码完全是两回事,所以千万不要指望成打包成一个可执行文件会提高运行效率,相反可能会降低运行效率,好处就是在运行者的机器上不用安装python和你的脚本依赖的库。在Linux操作系统下,它主要用的binutil工具包里面的ldd和objdump命令。
2.PyInstaller输入你指定的的脚本,首先分析脚本所依赖的其他脚本,然后去查找,复制,把所有相关的脚本收集起来,包括Python解析器,然后把这些文件放在一个目录下,或者打包进一个可执行文件里面。
可以直接发布输出的整个文件夹里面的文件,或者生成的可执行文件。你只需要告诉用户,你的应用App是自我包含的,不需要安装其他包,或某个版本的Python,就可以直接运行了。
3. 需要注意的是,PyInstaller打包的执行文件,只能在和打包机器系统同样的环境下。也就是说,不具备可移植性,若需要在不同系统上运行,就必须针对该平台进行打包。

以上是关于如何把python脚本打包成rpm包的主要内容,如果未能解决你的问题,请参考以下文章

制定RPM包

python怎么打包整个项目

python 学习如何将Python脚本打包成可执行的exe文件#520表白代码

linux系统之定制rpm包

调用了shell脚本的Qt程序如何打包成.deb文件

fpm工具来制作rpm包软件