PyInstaller打包报错__PyInstaller_hooks_0_IPython导入失败如何解决
PyInstaller打包报错修复方案
报错1:IPython钩子导入失败修复
对应报错:PyInstaller.exceptions.ImportErrorWhenRunningHook: Failed to import module __PyInstaller_hooks_0_IPython required by hook for module xxx/hook-IPython.py
- 若项目未使用IPython,直接在打包命令中添加排除参数,跳过IPython模块加载:
pyinstaller --exclude-module IPython 你的入口文件名.py
该方案可从根源避免触发不兼容的IPython钩子,优先级最高。 - 若项目必须使用IPython,安装匹配PyInstaller 4.5.1版本的钩子依赖:
先卸载现有钩子包:pip uninstall pyinstaller-hooks-contrib -y
再安装兼容版本:pip install pyinstaller-hooks-contrib==2021.3
报错2:PyQt5无__version__属性修复
对应报错:AttributeError: Module 'PyQt5' has no attribute '__version__'
- 方案1:在项目入口文件最开头添加代码,主动为PyQt5挂载版本属性:
import PyQt5 from PyQt5.QtCore import PYQT_VERSION_STR PyQt5.__version__ = PYQT_VERSION_STR - 方案2:修改PyInstaller内置的PyQt5钩子配置:
找到Python目录下的site-packages/PyInstaller/hooks/hook-PyQt5.py文件,将原有读取PyQt5.__version__的代码行,替换为:from PyQt5.QtCore import PYQT_VERSION_STR version = PYQT_VERSION_STR
兜底通用方案
直接升级PyInstaller到适配Python 3.9的稳定兼容版本,一次性解决两个版本兼容问题:pip install pyinstaller==5.13.2
升级完成后直接执行常规打包命令即可。
内容的提问来源于stack exchange,提问作者WaddyBox
相关产品推荐
相关产品推荐

