python3.4中的Pytesser:name';图像到字符串';没有定义吗?
首先,我想说我知道pytesser不适用于python3.4,但我从中了解到pytesser也适用于python3。 我刚刚安装了pytesser,正在尝试读取一个文件python3.4中的Pytesser:name';图像到字符串';没有定义吗?,python,ocr,Python,Ocr,首先,我想说我知道pytesser不适用于python3.4,但我从中了解到pytesser也适用于python3。 我刚刚安装了pytesser,正在尝试读取一个文件 from pytesser import * from PIL import Image image = Image.open('/Users/William/Documents/Science/PYTHON/textArea01.png') 没有问题,但是当我使用 print (image_to_string(image))
from pytesser import *
from PIL import Image
image = Image.open('/Users/William/Documents/Science/PYTHON/textArea01.png')
没有问题,但是当我使用
print (image_to_string(image))
它得出这样的结论:
Traceback (most recent call last):
File "<pyshell#11>", line 1, in <module>
print (image_to_string(image))
NameError: name 'image_to_string' is not defined
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
打印(图像到字符串(图像))
名称错误:未定义名称“图像到字符串”
您的代码无法用于Python 3。原因是,当您从pytesser import*执行操作时(或者首先简单地导入它),if uuuu name uuu='uuuu main uuu'
条件将为True,并且它下面的代码将运行
我相信大家都知道,在Python3中,print
不再是一个语句,而是一个函数。因此,打印文本
行将出现语法错误
我不知道为什么您的代码中没有看到这个SyntaxError
,但是如果这个错误以静默方式传递,这意味着没有导入任何内容,因此出现了错误
要解决这个问题,请使用Python 2.7
Python 2.7:
>>> from pytesser import *
>>> print image_to_string
<function image_to_string at 0x10057ec08>
来自pytesser导入的>>*
>>>将图像打印到字符串
Python 3:
>>> from pytesser import *
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "./pytesser.py", line 61
print text
^
SyntaxError: invalid syntax
来自pytesser导入的>>*
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/pytesser.py”,第61行
打印文本
^
SyntaxError:无效语法
我在使用PyteSeract Python 3模块时遇到了类似的问题。您可能需要更改pytesser模块的init.py中的import语句,并添加前导点。对于在init.py上运行2to3-3.4的PyteSeract,其更改为:
从PyteSeract导入图像到字符串
到
从.pytesseract导入图像到字符串
然后它可以解析图像到字符串的函数。我这样解决了这个问题:
from pytesseract import pytesseract as pytesser
from PIL import Image
请告诉我们全部代码。您的错误在中显示为
文件“”,第1行,因此,您没有导入,我只是查看了源。。。。在我看来,它不会与Python 3兼容。。。我这么说的唯一原因是它在顶部导入了StringIO。@Haidro我的全部代码已经是我发布的了。导入是在“from pytesser import*”部分中完成的。是的,但在您的错误中,它指出打印(图像到字符串(图像))
是第一个line@Haidro嗯,我在shell中输入了所有这些内容,在所有其他内容之后,我使用了print(image-to-string(image))。我应该在脚本中这样做吗?