PyInstaller编译的Python OCR项目Win2012 R2生产环境tesseract.exe崩溃求助
我有一个基于pytesseract实现图片文本OCR识别的Python项目,已通过PyInstaller编译为可执行程序。该项目在本地开发环境、Windows沙箱及Windows Server 2012测试机中运行正常,但部署至同版本系统(Windows Server 2012 R2)的生产服务器时,OCR识别过程出现错误:弹出提示框显示tesseract.exe已停止工作,系统日志包含1条信息日志和2条错误日志。
日志详情
信息日志
故障存储桶类型0,事件名称APPCRASH,问题签名P1: tesseract.exe、P2:0.0.0.0、P3:639a0c83、P4:libtesseract-5.dll、P5:0.0.0.0、P6:639a0c7f、P7:c000001d、P8:001b639f,报告文件路径为C:\Users\usr\AppData\Local\Microsoft\Windows\WER\ReportArchive\AppCrash_tesseract.exe_45e0684ae65db46f6f2bc3f433eb0f313d8116_60142e40_19e538bc。
错误日志1
故障应用程序tesseract.exe(版本0.0.0.0,时间戳0x639a0c83),故障模块libtesseract-5.dll(版本0.0.0.0,时间戳0x639a0c7f),异常代码0xc000001d,故障偏移0x001b639f,进程ID0x17f8,程序路径C:\Program Files (x86)\Tesseract-OCR\tesseract.exe,模块路径C:\Program Files (x86)\Tesseract-OCR\libtesseract-5.dll。
错误日志2
Windows因无法访问文件关闭tesseract.exe,提示可能为网络、磁盘或存储驱动问题,但实际无磁盘故障。
已完成的排查操作
- 以管理员身份运行项目,无效果
- 确认生产环境无网络,且项目无需联网,排除网络依赖问题
- 配置
tesseract.exe强制以管理员身份运行,无效 - 排查64位编译程序调用32位tesseract的兼容性问题(此前测试该配置可正常运行)
- 检查杀毒软件、防火墙,无拦截记录
- 更换Tesseract-OCR安装目录后仍失败,但在
D://Tesserract-OCR/下手动执行命令tesseract images/eurotext.png - -l eng可正常运行,推测代码中pytesseract.image_to_string(thresh, lang=self.lang_tesseract)语句执行失败。
内容的提问来源于stack exchange,提问作者seneill

