OSError:[Errno 2]没有使用pytesser的文件或目录

时间:2016-02-24 18:09:07

标签: python error-handling python-tesseract pytesser

这是我的问题,我想使用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

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

7 个答案:

答案 0 :(得分:8)

打开文件 pytesseract.py

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

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

答案 1 :(得分:8)

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

首先,我运行命令

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 :(得分:3)

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

sudo apt-get install tesseract-ocr

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

from os import system

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

答案 3 :(得分:2)

您正在获得异常,因为子进程无法找到二进制文件(tesser可执行文件)。

安装过程分为3个步骤:

1. 下载/安装系统级libs / binaries

对于各种操作系统,这里是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>'

默认路径'd为/usr/local/bin/tesseract

答案 4 :(得分:1)

对于MacOS和Ubuntu,我遇到了两次相同的问题。这对我有用。希望它可以帮助。

首先,打开终端,然后:

答案 5 :(得分:0)

对于每个人来说可能不是这种情况,但我遇到了类似的问题,这是因为在安装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代码运行正常,我得不到&#34; OSError:[Errno 2]没有这样的文件或目录&#34;错误信息。

答案 6 :(得分:0)

您需要安装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')))