Pyinstaller报‘Failed to determine version’及Mindee模块识别失败求助
解决PyInstaller打包Mindee模块时的“Failed to determine version”与模块未识别问题
核心原因
PyInstaller默认未完整抓取Mindee模块的动态依赖项或版本文件,导致运行打包后的程序时无法识别模块并触发版本检测失败。
具体解决方案
显式覆盖所有Mindee子模块依赖
单一的--hidden-import mindee不足以覆盖所有内部子模块,需根据你实际使用的功能添加完整依赖:pyinstaller --hidden-import mindee --hidden-import mindee.client --hidden-import mindee.documents --hidden-import mindee.documents.base --hidden-import mindee.version your_script.py如果你用到了
documents下的具体子模块(如invoice、receipt),需要额外添加对应的--hidden-import mindee.documents.invoice这类参数。强制包含Mindee版本文件
Mindee运行时会读取自身的version.py文件获取版本信息,PyInstaller默认不会打包该文件,需用--add-data参数手动包含:- Windows环境:
pyinstaller --add-data "venv\Lib\site-packages\mindee\version.py;mindee" your_script.py - Linux/macOS环境:
pyinstaller --add-data "venv/lib/python3.x/site-packages/mindee/version.py:mindee" your_script.py
注意替换命令中的虚拟环境路径和Python版本号为你本地实际路径。
- Windows环境:
使用.spec文件自定义打包配置
若命令行参数难以覆盖所有场景,可生成并编辑.spec文件实现更精细的控制:- 生成初始.spec文件:
pyinstaller your_script.py - 打开生成的
your_script.spec,修改以下配置:hiddenimports=['mindee', 'mindee.client', 'mindee.documents', 'mindee.documents.base', 'mindee.version'], datas=[('path/to/your/site-packages/mindee/version.py', 'mindee')], - 基于修改后的.spec文件重新打包:
pyinstaller your_script.spec
- 生成初始.spec文件:
验证本地Mindee安装完整性
先确保未打包的脚本在本地环境能正常运行,避免因模块安装不完整导致的问题:pip install --upgrade mindee
内容的提问来源于stack exchange,提问作者Jæcob
相关产品推荐
相关产品推荐

