如何解决编译含pymssql脚本时出现Hidden import "_mssql" not found报错
问题原因
该警告为PyInstaller打包含pymssql依赖脚本的常见报错,触发原因是pymssql底层依赖_mssql这个C扩展模块,PyInstaller的自动依赖扫描逻辑无法识别到该隐式导入的模块,打包后的程序运行时大概率会触发模块缺失类运行错误。
解决方案
- 方法1:显式声明隐式导入参数
打包时在PyInstaller命令中增加--hidden-import参数手动指定该依赖,命令示例:pyinstaller --hidden-import _mssql 你的脚本文件名.py
如果你已经生成了打包spec配置文件,可以直接修改spec文件中的hiddenimports字段,添加'_mssql'即可,示例配置片段:
a = Analysis( ['你的脚本文件名.py'], hiddenimports=['_mssql'], # 其余原有配置保持不变 )
修改完成后用spec文件重新执行打包即可。
- 方法2:更换兼容版本
如果方法1执行后仍然报错,多为当前使用的pymssql版本与PyInstaller存在兼容性问题,可尝试安装2.1.4稳定版本后重新打包:
首先卸载现有pymssql:pip uninstall -y pymssql
然后安装指定版本:pip install pymssql==2.1.4
安装完成后重新执行打包操作即可。 - 方法3:补充运行时依赖
Windows环境下如果前述方法都无效,可检查是否安装了对应架构的Microsoft Visual C++ Redistributable运行库,安装完成后重新打包即可正常识别依赖。
内容的提问来源于stack exchange,提问作者Сергей Лавров
相关产品推荐
相关产品推荐

