pyinstaller

本文介绍了如何使用PyInstaller工具打包Python程序,包括单文件和多文件打包的命令行用法,以及处理打包过程中遇到的问题,如添加隐藏导入模块、处理PyQt库路径等。在打包完成后,需要将依赖项拷入生成的根目录以确保程序正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

打包py文件

使用pyinstaller打包的时候,仅打包.py文件,其余依赖项只需在打包完成后,拷入打包生成的根目录即可。

多文件打包
命令格式如下,下命令为一条命令,为方便显示做了分行处理:

pyinstaller [主文件] -p [其他文件1] -p [其他文件2]
–hidden-import [自建模块1]
–hidden-import [自建模块2]

在根目录打开命令窗口,输入命令:

pyinstaller main.py -p mysql.py -p other.py --hidden-import mysql --hidden-import other
在目录结构:“程序根目录\dist\main\” 下可以找到生成的main.exe。将其他依赖文件拷贝进入“程序根目录\dist\main\” 下,即可运行。

cmd进入py程序项目目录,执行命令:pyinstaller -F -w --icon=xxx.ico main.py --noconsole。其中,-F表示生成单exe可执行文件,-w表示窗体程序,
–icon是设置exe的显示图标,'main.py’是程序的入口,–noconsole 表示不展示cmd窗口,反过来想看cmd窗口就改成–console。*.ico文件可以到网上ico矢量图在线转换工具处理
http://www.faviconico.org/

一阵刷屏之后,终于打出成功的提示:

程序目录下多了几个文件夹:一个spec文件,build文件夹,一个dist文件夹,其中的dist文件夹内就是我们生成的exe应用程序:

FATAL ERROR:
执行之,应该能看到程序界面,可是…弹出的却是个错误框:Failed to execute script pyi_rth_qt5plugins

这个错误的原因在于pyinstaller找不到PyQt库,通过网上封装好的pyqt安装程序包安装的,则不会出现这个问题,而我们是通过pip安装的,
没有将pyqt的路径加入环境变量。
解决办法是在打包命令中加入paths参数:pyinstaller --paths C:Users…Python35-32/Lib/site-packages/PyQt5/Qt/bin -F -w --icon=roman.ico main.py 或者设置下环境变量。这时,再看下生成的exe,文件大小已经由8.5M增大到14.5M了,再次执行之,ok,看到了我们的界面,而且功能也是ok的,

多文件打包:

多文件打包参考:https://blog.youkuaiyun.com/CholenMine/article/details/80964272

命令格式如下,下命令为一条命令,为方便显示做了分行处理:

pyinstaller [主文件] -p [其他文件1] -p [其他文件2]
–hidden-import [自建模块1]
–hidden-import [自建模块2]

pyinstaller main.py -p mysql.py -p other.py --hidden-import mysql --hidden-import other

在目录结构:“程序根目录\dist\main\” 下可以找到生成的main.exe。将其他依赖文件拷贝进入“程序根目录\dist\main\” 下,即可运行

### PyInstaller 使用指南 #### 安装 PyInstaller 为了使用 PyInstaller 进行 Python 应用程序的打包,首先需要安装该工具。可以通过 pip 工具来完成这一操作: ```bash pip install pyinstaller ``` 对于拥有多个 Python 解释器的情况,建议指定特定版本的 Python 来运行上述命令,以确保正确安装到目标环境中[^2]。 #### 基本语法与选项说明 PyInstaller 提供了一系列参数用于控制打包过程的行为。基本命令结构如下所示: ```bash pyinstaller [OPTIONS] script.py ``` 常用的一些选项包括但不限于: - `-F` 或 `--onefile`: 将整个应用程序及其依赖项压缩成单个可执行文件。 - `-w` 或 `--windowed`: 对于图形界面应用,在 Windows 和 macOS 上不显示终端窗口启动;在 Linux 下此选项通常无效果。 - `-i ICON, --icon=ICON`: 设置生成的应用图标(仅限 Windows/macOS),需提供 .ico 文件路径作为参数传递给该项。 - `-n NAME, --name=NAME`: 自定义最终输出文件的名字,默认情况下会采用源码脚本名。 - `-D` 或者 `--onedir`: 创建一个目录并将所有必要的资源放入其中,而不是创建单一可执行文件。 具体实例展示见下文[^4]。 #### 实际案例分析 假设有一个名为 `Main.py` 的主入口文件,并希望将其转换为独立运行的应用程序,则可以在命令行输入以下指令实现目的: ```bash pyinstaller -D -i 1.ico -c -n Z_PID Main.py ``` 这条语句指定了几个重要设置:将项目编译为多文件模式(`-D`)、设定自定义图标 (`-i 1.ico`)、保持控制台可见 (`-c`) 并赋予新应用名称 (`Z_PID`). 当遇到复杂工程项目时,可能还需要通过 `.spec` 配置文件进一步调整细节配置,比如引入外部库或处理特殊类型的文件等。此时可以根据实际情况编辑对应的 spec 文件并再次调用 PyInstaller 加载它来进行构建工作[^3]. #### 处理常见问题 有时可能会碰到一些棘手的问题影响正常打包流程。例如,某些第三方模块无法被自动识别而缺失,这时就需要手动干预添加这些遗漏部分至打包清单内。另外值得注意的是,不同操作系统间存在差异性,因此针对跨平台开发场景下的兼容性测试也是必不可少的一环。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值