OSError: [Errno 2] No such file or directory using pytesser

Posted

技术标签:

【中文标题】OSError: [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. 【参考方案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。

installing tesseract-ocr on RHEL/CentOS 7 的 Bash 脚本

使用yum - 来自SO answer - /usr/bin/yum --enablerepo epel-testing install tesseract.x86_64

CentOS 手动安装指南 - SO Answer。

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,我两次遇到同样的问题。这对我有用。希望能有所帮助。

首先,打开终端,然后:

Ubuntu:运行“sudo apt-get install tesseract-ocr” MacOS:运行“brew install tesseract”。如果无法使用“brew”,请先运行此命令,然后重试:“ruby -e”$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”

【讨论】:

【参考方案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”错误消息。

【讨论】:

以上是关于OSError: [Errno 2] No such file or directory using pytesser的主要内容,如果未能解决你的问题,请参考以下文章

Python:OSError:[Errno 2]没有这样的文件或目录:''

easyprocess.EasyProcessCheckInstalledError: cmd=['Xvfb', '-help'] OSError=[Errno 2] 没有这样的文件或目录

OSError: [Errno 2] 在 Django 中使用 python 子进程时没有这样的文件或目录

OSError:[Errno 26] 文本文件忙:'baremetrics'

Flutter 报错: Error: No address associated with hostname, errno = 7

OSError : [Errno 24] 打开的文件太多