我有工作代码,我使用tesseract从图像文件中提取数据,如下所示:
if src:
driver.get(src)
driver.save_screenshot('/Users/username/script/' + 'test.png')
image_name = 'test.png'
im = Image.open(image_name)
image_text = pytesseract.image_to_string(im)
print '\nImage Text:\t', image_text
当我执行代码时,此代码段在Mac终端中没有任何错误,但是当我使用PyDev在Eclipse中执行相同操作时,它会抛出错误:
Exception: [Errno 2] No such file or directory
尝试执行该行时:
im = Image.open(image_name)
为什么会在Eclipse中发生这种情况?
更新:由于我的代码对于很少人来说似乎很时髦,我已将其更改为以下但问题仍然存在(在mac终端上运行完全正常,但Eclipse一直给我同样的错误)
if src:
driver.get(src)
image_name = 'test.png'
image_path = os.path.realpath(image_name)
driver.save_screenshot(image_path)
# read chart data from image
im = Image.open(image_path)
答案 0 :(得分:1)
所以最终通过使用@Fabio建议的回溯来解决问题。它与当前目录中不存在的图像文件无关,但在路径中未找到tesseract的问题。
在pytesseract.py文件中,它显示为:
# CHANGE THIS IF TESSERACT IS NOT IN YOUR PATH, OR IS NAMED DIFFERENTLY
tesseract_cmd = 'tesseract'
请注意,直接更改pytesseract.py文件并不是一个好主意,但是在导入pytesseract的任何文件中,添加以下行(tesseract的路径将取决于您的特定计算机...在mac中我能够找到使用which
命令的路径:which tesseract
)
pytesseract.pytesseract.tesseract_cmd = '/usr/local/bin/tesseract'
答案 1 :(得分:0)
您的代码有点奇怪......您使用路径保存,然后只使用image_name。
使用以下代码尝试:
import os
filename = '/path/to/the/image.png'
driver.save_screenshot(filename)
if not os.path.exists(filename):
raise AssertionError("Image: %s does not exist" % (filename,))
Image.open(filename)
如果不起作用,请粘贴堆栈跟踪的全部内容。