当前位置: 首页 > 知识库问答 >
问题:

python - Python 调用 Tesseract-OCR 进行识别并控制键盘输入时exe程序闪退如何解决?

昌砚
2024-08-29

我编写了一个Python程序,需要调用tesseract-ocr来进行识别并控制键盘自动输入数字,但是我导出exe程序运行,前面通过桌面坐标鼠标移动的部分可以正常运行,一到识别的那个地方exe就直接闪退了。很急,可以视频,可以有偿,细谈

tesseract-ocr的文件我也放到exe所在文件夹里面了,还是不行,不确定是不是路径调用的问题,但是已经不会了,求救

共有1个答案

仇航
2024-08-29
权限检查:确保Python脚本有足够的权限去控制键盘输入和调用Tesseract。如果是在Windows系统上,可能需要以管理员身份运行Python脚本。
同步调用:如果你是通过子进程异步调用Tesseract,尝试改为同步调用,这样可以更容易捕获错误信息。
资源释放:确保在调用Tesseract后正确关闭所有的资源,比如释放文件句柄,以及通过子进程的wait()函数确保进程正常退出。
查看日志:查看可能生成的Tesseract日志文件,以获取更多关于闪退原因的线索。
示例代码修正(错误处理和同步调用):
try:
    # 假设你使用的是subprocess模块来调用Tesseract
    from subprocess import run, PIPE, STDOUT
    result = run(['tesseract', 'image.png', 'stdout', '-l', 'eng'], stdout=PIPE, stderr=STDOUT)
    ocr_output = result.stdout.decode('utf-8')
    # 这里处理OCR输出
    print(ocr_output)
except Exception as e:
    # 这里捕获并处理可能的异常
    print(f"An error occurred: {e}")

如果程序仍然闪退,请根据实际情况进一步调试。

 类似资料:
  • 问题内容: 我刚刚开始弄乱JLine来解析控制台模式下的字符输入。看来运作良好,但我想知道: JLine中是否有非阻塞方式来查找字符是否可用?(例如,在Windows中。) 我想我总是可以将键盘输入包装在其自己的线程中,该线程随后将键盘字符提供给主线程一个线程安全的队列,但这似乎是不必要的。 编辑 :这是逐字符解析。我不会使用GUI。在控制台模式下,Java中通常的InputStream I /

  • 问题内容: 如何在Python中控制鼠标和键盘? 这个想法与Java中的Robot()类相同。可以说:将鼠标从此处移至此处,单击此处,然后将其写在屏幕上。 对于Windows,有win32api,但我主要使用Linux。 对于Linux,有Xlib,但它也适用于键盘吗?(仅找到对鼠标的引用) 有跨平台的解决方案吗?(Linux,Windows甚至OS X都很棒。) 问题答案: 对于鼠标,我发现py

  • 问题内容: 你如何提示用户进行一些输入,但在N秒后超时? Google指向上与此有关的邮件线程,但似乎无法正常工作。无论是还是,发生超时的语句总是可以得到: 不知何故,除了失败。 问题答案: 你链接到的示例是错误的,并且异常实际上是在调用警报处理程序而不是读取块时发生的。最好试试这个:

  • 本文向大家介绍Python+Selenium+PIL+Tesseract自动识别验证码进行一键登录,包括了Python+Selenium+PIL+Tesseract自动识别验证码进行一键登录的使用技巧和注意事项,需要的朋友参考一下 本文介绍了Python+Selenium+PIL+Tesseract自动识别验证码进行一键登录,分享给大家,具体如下: Python 2.7 IDE Pycharm 5

  • 本文向大家介绍python监控键盘输入实例代码,包括了python监控键盘输入实例代码的使用技巧和注意事项,需要的朋友参考一下 本文研究的主要是python监控键盘输入的相关代码,用到了os,sys,time等,具体实现代码如下: 结果: 总结 以上就是本文关于python监控键盘输入实例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢

  • 本文向大家介绍Perl使用Tesseract-OCR实现验证码识别教程,包括了Perl使用Tesseract-OCR实现验证码识别教程的使用技巧和注意事项,需要的朋友参考一下 一、Tesseract-OCR 是什么 An OCR Engine that was developed at HP Labs between 1985 and 1995… and now at Google 基于Lepto

  • 我有一个 EXE 文件,它不断从控制台上的用户那里获取整数输入(不是命令行参数)并将整数 1 输出到控制台上。示例输出如下所示: 我已经使EXE输出工作,也就是说,每当EXE输出文本到控制台时,从Java程序中打印该文本。我正在尝试: 使用<code>Scanner从Java程序获取用户输入。nextInt()并作为控制台输入输入到EXE 我需要一次发送一个输入,这意味着只需在程序结束时关闭Buf

  • 问题内容: 我已经使用了几个模块来制作适用于Python的EXE,但是我不确定自己是否做对了。 我应该怎么做,为什么?请根据个人经验回答,并在必要时提供参考。 问题答案: 自动将PY 转换为EXE- 使用简单的图形界面(从Eel和PyInstaller在Python中构建)将.py转换为.exe。 py2exe可能是您想要的,但是它仅适用于Windows。 PyInstaller可在Windows