【问题标题】:OSError: [Errno 2] No such file or directory using pytesserOSError: [Errno 2] No such file or directory using pytesser
【发布时间】:2016-06-07 04:37:30
【问题描述】:

这是我的问题,我想使用 pytesser 来获取图片的内容。我的操作系统是Mac OS 10.11,我已经安装了PIL、pytesser、tesseract-ocr引擎以及libpng等其他支持库。但是当我运行我的代码时,如下所示,会发生错误。

from pytesser import *
import os
image = Image.open('/Users/Grant/Desktop/1.png')
text = image_to_string(image)
print text

接下来是错误信息

Traceback (most recent call last):
File "/Users/Grant/Documents/workspace/image_test/image_test.py",    line 10, in <module>
text = image_to_string(im)
File   "/Users/Grant/Documents/workspace/image_test/pytesser/pytesser.py", line   30, in image_to_string
call_tesseract(scratch_image_name, scratch_text_name_root)
File "/Users/Grant/Documents/workspace/image_test/pytesser/pytesser.py", line 21, in call_tesseract
retcode = subprocess.call(args)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 522, in call
return Popen(*popenargs, **kwargs).wait()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 710, in __init__
errread, errwrite)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 1335, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory

此外,tesseract-ocr 引擎在我的 Mac 上运行良好,我可以在终端中运行它并获得结果。下面是测试图片结果。 tesseract result

有人可以帮我解答这个问题吗?

【问题讨论】:

  • 你试过用 \\ 代替 / 吗?
  • 我刚试过,不行。它返回错误消息“IOError: [Errno 2] No such file or directory: '\\Users\\Grant\\Desktop\\1.png'”
  • 您需要安装 Tesseract OCR 引擎并提供其路径。 Same problem discussed here.

标签: python error-handling python-tesseract pytesser


【解决方案1】:

幸运的是,我解决了这个问题。

首先,我运行命令

pip install pytesseract

安装包。

但我收到“没有使用 pytesser 的此类文件或目录”的错误消息。

然后我阅读了这个链接:image_to_string doesn't work in Mac 因此,只需运行以下脚本:

brew link libtiff 
brew link libpng 
brew link jpeg
brew install tesseract

为我工作~

【讨论】:

    【解决方案2】:

    打开文件 pytesseract.py

    我在/Users/yourUser/.virtualenvs/cv/lib/python2.7/site-packages/pytesseract/pytesseract.py

    tesseract_cmd = 'tesseract' 更改为tesseract_cmd = '/usr/local/bin/tesseract'

    【讨论】:

    • 我一遍又一遍地尝试链接和更改路径,但都没有奏效。这是唯一对我有用的解决方案。谢谢!
    • # CHANGE THIS IF TESSERACT IS NOT IN YOUR PATH, OR IS NAMED DIFFERENTLY,就在涉及行的前面一行:-) 因此,将 tesseract 添加到 $PATH 将使其在不接触文件的情况下也可以工作。更新后,您需要再次编辑,因此最好在第一次将其添加到路径中。我的情况是二进制文件被称为pytesseract,所以除非你添加正确的名称,否则没有一个可以工作。
    • @em3nda 你最后一句话是什么意思?你是说改变路径对你不起作用吗?尽管我的路径有 bin 文件夹到 tesseract,但它仍然不起作用。
    【解决方案3】:

    我遇到了同样的问题,但我设法将图像转换为字符串。 使用apt-get 应该可以解决问题:

    sudo apt-get install tesseract-ocr
    

    如果您不能在 python 脚本中使用它,请执行以下操作:

    from os import system
    
    system("tesseract -l eng /image.png text.txt")
    

    【讨论】:

      【解决方案4】:

      您收到异常是因为子进程无法找到二进制文件(tesser 可执行文件)。

      安装过程分为 3 步:

      1.下载/安装系统级库/二进制文件

      对于各种操作系统,这里是help。对于 MacOS,您可以使用 brew 直接安装它。

      安装 Google Tesseract OCR(有关如何安装 Linux、Mac OSX 和 Windows 上的引擎)。您必须能够调用 tesseract 命令作为 tesseract。如果不是这种情况,例如 因为 tesseract 不在您的 PATH 中,所以您必须更改 tesseract.py 顶部的“tesseract_cmd”变量。在下面 Debian/Ubuntu 你可以使用包 tesseract-ocr。对于 Mac OS 用户。 请安装自制软件包 tesseract。


      2.安装 Python 包

      pip install pytesseract
      

      3.最后,您需要在 PATH 中包含 tesseract 二进制文件

      或者,您可以在运行时设置它:

      import pytesseract
      
      pytesseract.pytesseract.tesseract_cmd = '<path-to-tesseract-bin>'
      

      默认路径是/usr/local/bin/tesseract

      【讨论】:

      • 第三点与这个问题最相关。 $ which tesseract 将给出 tesseract bin 的实际路径,将其复制到 'path/to/bin'。谢谢。
      • *path/to/bin/tesseract
      【解决方案5】:

      你需要安装tesseract-ocr:

      sudo apt-get install tesseract-ocr

      在脚本中

          from PIL import Image
          import os
          import pytesseract
      
          text = pytesseract.image_to_string(Image.open(os.path.abspath('test.png')))
      

      【讨论】:

        【解决方案6】:

        对于 MacOS 和 Ubuntu,我两次遇到同样的问题。这对我有用。希望能有所帮助。

        首先,打开终端,然后:

        【讨论】:

          【解决方案7】:

          这可能不是每个人的情况,但我遇到了类似的问题,这是由于安装 tesseract 时出错。 我不断收到错误消息:

          Making install in ccutil
          /bin/sh: /Applications/Xcode: No such file or directory
          make: *** [install-recursive] Error 1
          

          这是因为我之前将 /Applications/Xcode 重命名为 /Applications/Xcode 8,以便我自己更容易区分我系统上安装的不同 Xcode 版本。

          我暂时将其重命名为 /Applications/Xcode 然后运行命令

          sudo xcode-select --switch /Applications/Xcode.app
          

          然后终于尝试重新安装tesseract,幸好这次没有错误消息。

          brew install tesseract --all-languages
          

          现在 Python 代码运行良好,我没有收到“OSError: [Errno 2] No such file or directory”错误消息。

          【讨论】:

            猜你喜欢
            • 2017-07-05
            • 2018-11-20
            • 2018-07-24
            • 1970-01-01
            • 2019-03-25
            • 2018-01-21
            • 2015-10-20
            • 1970-01-01
            • 2015-05-06
            相关资源
            最近更新 更多