PyInstaller构建PyQt+pyqtgraph项目时出现子进程异常错误
解决PyInstaller打包PyQt+pyqtgraph时的SubprocessDiedError错误
可能的原因及修复方案
1. 手动指定pyqtgraph子模块导入
错误提示指向pyqtgraph.canvas模块收集失败,大概率是PyInstaller自动模块收集机制在项目修改后出现异常。直接在.spec文件中手动补充相关模块:
- 打开你的.spec文件,找到
hiddenimports参数,添加以下内容:
hiddenimports=['pyqtgraph.canvas', 'pyqtgraph.canvas.Canvas', 'pyqtgraph.canvas.PlotCanvas']
2. 清理PyInstaller缓存
项目修改后,旧缓存可能引发冲突,执行清理命令后重新打包:
pyinstaller --clean your_script.spec
也可以手动删除项目根目录下的build、dist文件夹,再重新运行打包命令。
3. 调整pyqtgraph版本
该错误常和pyqtgraph版本兼容性相关,尝试切换到之前能成功打包的版本:
pip install pyqtgraph==<之前成功的版本号>
或者升级到最新稳定版:
pip install --upgrade pyqtgraph
4. 排查新增代码的导入问题
既然是修改项目后出现的故障,重点检查新增代码:
- 确认是否存在动态导入
pyqtgraph.canvas相关模块的逻辑,PyInstaller无法自动识别动态导入,需手动添加到hiddenimports。 - 检查是否出现循环导入或模块依赖冲突,修复代码中的导入逻辑。
5. 禁用PyInstaller隔离模式
错误来自PyInstaller.isolated子进程,尝试关闭隔离模式打包:
pyinstaller --no-isolation your_script.spec
注意:此方法可能引发其他依赖问题,需确保当前环境依赖配置正确。
内容的提问来源于stack exchange,提问作者Mudu 93
相关产品推荐
相关产品推荐

