使用PyInstaller+Enigma Virtual Box制作成可执行文件【python/Qt】

一、简单介绍

1.1 PyInstaller

定位:Python 专属的打包工具,用于将 Python 脚本转换为独立的可执行文件(.exe、.app 等)。

核心功能

  • 将 Python 脚本、依赖库(如 numpy、requests 等)、Python 解释器打包成一个或多个可执行文件,无需目标设备安装 Python 环境即可运行。

  • 支持多平台(Windows、macOS、Linux),可根据运行环境生成对应系统的可执行文件。

  • 提供两种打包模式:

    • 单文件模式--onefile):所有内容整合为一个独立的可执行文件,方便分发但启动速度稍慢。

    • 文件夹模式(默认):生成一个包含可执行文件和依赖文件的文件夹,启动速度较快。 

1.2 Enigma Virtual Box

定位:通用的文件虚拟化工具,用于将多个文件(可执行文件、DLL、资源文件等)整合为一个独立的可执行文件。

核心功能

  • 通过 “文件虚拟化” 技术,将程序运行所需的所有文件(如主程序.exe、依赖的.dll、图片、配置文件等)打包成一个单独的可执行文件。

  • 运行时,打包的文件会被虚拟加载到内存中,不向硬盘写入临时文件,保持原始文件结构和功能不变。

  • 支持任何类型的程序(不限于 Python),如 C/C++、Java(打包后的.jar)、.NET 等开发的程序。

1.3 配合使用示例

  1. 用 PyInstaller 将 Python 脚本打包为可执行文件(如 myapp.exe),此时可能生成一个包含 myapp.exe 和多个依赖文件的文件夹。

  2. 用 Enigma Virtual Box 将该文件夹中的所有文件(myapp.exe、依赖 DLL、配置文件等)整合为一个单独的 myapp.exe,进一步简化分发。

二、安装PyInstaller

PyInstaller官方网站:PyInstaller Manual — PyInstaller 6.15.0 documentation

要安装 PyInstaller,你可以使用 Python 的包管理工具 pip 来完成,步骤如下:

1、首先确保你已经安装了 Python 和 pip,可以在命令行中输入以下命令验证是否安装:

python --version 
pip --version     

2、安装 PyInstaller,在win+r,cmd命令行中执行以下命令:

pip install pyinstaller

3、验证安装是否成功:

pyinstaller --version

三、安装Enigma Virtual Box

Enigma Virtual Box官方网站:Software Protection, Software Licensing, Software Virtualization

下载后一直点击下一步即可。

四、实现具体步骤

4.1 用 PyInstaller 将 Python 脚本打包为可执行文件

        刚开始的时候是这样的

        应用程序图标(logo.ico)是放在可执行程序里面的资源。

        可以在PyInstaller创建可执行程序时,通过参数 --icon="logo.ico" 指定。

        在命令框输入以下指令:

pyinstaller main.py --noconsole --hidden-import PySide6.QtXml --icon="logo.ico"

        最好把打包后生成的文件重新放入一个文件夹内,然后,把程序所需要的资源文件,比如 图片、excel、ui等拷贝到打包dist/main目录中,因为PyInstaller 仅能自动识别程序运行所需的代码文件,而对于程序在运行过程中动态调用的资源文件,它则无法主动检测到。

        最终生成:

        使用的时候要下一个文件夹,太麻烦了,于是!接着往下看

4.2 用 Enigma Virtual Box 将该文件夹中的所有文件整合为一个单独的 .exe

        1、打开Enigma Virtual Box工具,选择刚才新建目录的main.exe文件

        2、将包含资源的整个文件夹添加进来

        3、选择压缩

        最后点击Process生成一个新的main_boxed.exe文件,点击即可运行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值