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
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