安装pyinstaller打包发布所需环境

关键词

pyinstaller 打包发布 PyQt5项目 环境

打包发布所需环境

1.安装pip(百度搜索)
2.安装pyinstaller

pip install pyinstaller

 
测试是否安装成功,如果显示一堆列表,最后还有一行“pyinstaller: error: the following arguments are required: scriptname”,就说明成功

pyinstaller

在这里插入图片描述
具体还可以参考此文:windows7下安装pyQt5的一点记录

 

3.安装pywin32
进入此网站:https://sourceforge.net/projects/pywin32/files/pywin32/
 
不要急着点击绿色按钮“Download Latest Version”,仔细看一下,它其实是一个readme文本文件,不是exe软件。

看一下哪一条的Downloads/week最多,就选择哪一个Build版本
在这里插入图片描述

接着看一下软件包的信息,选择符合条件的软件后下载即可

一般来说,zip为绿色版,exe为安装版。
选择原则:
1)电脑位数
win64位:win-amd64
win32位:win32
2)python版本
看一下py后面的数字
在这里插入图片描述
如果安装了Anaconda的,没有单独安装python的,可以参照下图,使用cmd来查看
在这里插入图片描述
安装过程很简单,与普通软件一样。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

以上

参考文章

windows7下安装pyQt5的一点记录
pyinstaller—3步即可将你的py文件转成exe格式

在使用 PyInstaller 打包 Python 程序时,**默认并不会自动打包所有所需的依赖文件**,尤其是像 PySide6、PyQt5/6 这类依赖大量动态库(DLL)、插件(plugins)和资源文件的库。因此,**你需要通过配置 `.spec` 文件或使用命令行参数来确保所有依赖都被正确打包。** --- ## ✅ 如何让 PyInstaller 默认打包所有所需文件? ### ✅ 方法一:使用 `--collect-all` 参数(推荐) PyInstaller 提供了一个非常方便的参数 `--collect-all`,它可以自动收集指定模块的所有依赖项(包括 DLL、资源文件、隐藏导入等)。 #### 示例命令: ```bash pyinstaller train_timetable.py --collect-all PySide6 ``` > ✅ 这会自动收集 PySide6 的所有依赖(包括 binaries、datas、hidden-imports),适合大多数情况。 --- ### ✅ 方法二:使用 `.spec` 文件 + `collect_dynamic_libs` 和 `collect_data_files` 如果你希望更精细地控制打包过程,可以修改 `.spec` 文件,自动收集所有 PySide6 相关的依赖文件。 #### 示例 `.spec` 文件配置: ```python # -*- mode: python ; coding: utf-8 -*- from PyInstaller.utils.hooks import collect_data_files, collect_dynamic_libs # 收集所有 PySide6 的 DLL 文件 binaries = collect_dynamic_libs('PySide6') # 收集所有 PySide6 的资源文件(如图标、翻译、插件等) datas = collect_data_files('PySide6') # 添加必要的隐藏导入(根据你的项目需求) hiddenimports = [ 'PySide6.QtCore', 'PySide6.QtGui', 'PySide6.QtWidgets', 'PySide6.QtNetwork', ] a = Analysis( ['train_timetable.py'], pathex=['.'], binaries=binaries, datas=datas, hiddenimports=hiddenimports, hookspath=[], hooksconfig={}, runtime_hooks=[], excludes=[], noarchive=False, ) pyz = PYZ(a.pure) exe = EXE( pyz, a.scripts, a.binaries, a.datas, [], name='train_timetable', debug=False, bootloader_ignore_signals=False, strip=False, upx=True, upx_exclude=[], runtime_tmpdir=None, console=False, ) ``` 然后使用以下命令打包: ```bash pyinstaller train_timetable.spec ``` --- ### ✅ 方法三:使用 `pyinstaller-hooks-contrib`(自动识别依赖) 安装这个包可以增强 PyInstaller 对各种库(如 PySide6、numpy、pandas)的自动识别能力。 ```bash pip install pyinstaller-hooks-contrib ``` 然后正常打包即可: ```bash pyinstaller train_timetable.py ``` --- ## ✅ 方法四:使用 `--add-data` 和 `--add-binary` 手动添加(适用于特定情况) 如果你知道哪些文件必须包含,可以手动添加: ```bash pyinstaller train_timetable.py \ --add-binary "C:/Python311/Lib/site-packages/PySide6/Qt/bin;PySide6/Qt/bin" \ --add-data "C:/Python311/Lib/site-packages/PySide6/Qt/plugins;PySide6/Qt/plugins" \ --hidden-import=PySide6.QtCore \ --hidden-import=PySide6.QtGui \ --hidden-import=PySide6.QtWidgets ``` --- ## ✅ 方法五:使用 `--clean` 参数清理缓存重新打包 有时候旧的缓存文件会影响打包结果,建议加上: ```bash pyinstaller train_timetable.py --clean ``` --- ## ✅ 总结:推荐做法 | 方法 | 描述 | 推荐程度 | |------|------|----------| | `--collect-all PySide6` | 简洁有效,自动收集所有依赖 | ⭐⭐⭐⭐⭐ | | 修改 `.spec` 文件自动收集 | 更灵活,适合复杂项目 | ⭐⭐⭐⭐⭐ | | 使用 `pyinstaller-hooks-contrib` | 增强依赖识别能力 | ⭐⭐⭐⭐ | | 手动添加 DLL 和插件 | 控制精细,但繁琐 | ⭐⭐⭐ | | 清理缓存重新打包 | 避免旧缓存干扰 | ⭐⭐⭐⭐ | --- ##
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值