Python使用pyinstaller打包exe
2026-06-03
2026-06-03
1、在自己的python环境下安装依赖
pip install pyinstaller
#验证安装
pyinstaller --version
2、打包命令
pyinstaller -w --onefile --name "Exe_program" --icon "exe.ico" --add-data "exe.ico;." --hidden-import=paramiko --hidden-import=paramiko.ssh_exception --hidden-import=paramiko.ssh_gss --hidden-import=PyQt5.QtWidgets --hidden-import=PyQt5.QtCore --hidden-import=PyQt5.QtGui --hidden-import=concurrent.futures main.py
参数解释:
-
**
w**全称-windowed,表示生成 无控制台窗口 的 GUI 程序。适用于 PyQt、Tkinter 等图形界面程序,避免运行时弹出黑色控制台窗口。 -
**
-onefile**生成 单文件可执行程序(所有依赖打包到一个.exe文件中)。优点:分发方便;缺点:启动速度略慢,临时解压会占用一定磁盘空间。 -
**
-name "Exe_program"**指定生成的可执行文件名称(默认是脚本名)。最终会生成Luban_Ai_Box.exe(Windows 系统)。 -
**
-icon "exe.ico"**设置程序的图标文件(.ico格式)。图标会显示在可执行文件、任务栏、窗口标题栏等位置。 -
-add-data "exe.ico;."(如图标、配置文件等)。
- 语法:
源文件路径;目标路径(Windows 用;分隔,Linux/macOS 用:分隔)。 - 这里表示将当前目录的
exe.ico打包,并在程序运行时解压到临时目录的根目录(.表示当前工作目录)。 - 程序中需用
sys._MEIPASS路径访问该文件(单文件模式下的临时解压目录)
- 语法:
-
-hidden-import=paramiko及相关子模块paramiko是用于 SSH 通信的库,其部分子模块(如ssh_exception、ssh_gss)可能因动态导入被 PyInstaller 忽略,需手动指定。 -
-hidden-import=PyQt5.QtWidgets等PyQt5 的部分组件可能因按需导入被遗漏,显式指定确保 GUI 组件能正常打包。 -
**
-hidden-import=concurrent.futures**Python 标准库中用于并发编程的模块,若程序中动态使用了该模块,需手动声明。 -
**
main.py**指定要打包的 主 Python 脚本路径(程序的入口文件)。
根据具体需求更改