文档章节

pytesser模块WindowsError错误解决方法

j_hao104
 j_hao104
发布于 2017/11/23 12:20
字数 371
阅读 19
收藏 0

在使用pytesser做图片文字识别时遇到 WindowsError: [Error 2] 错误,报错内容如下:

Traceback (most recent call last):
  File "E:/Code/Captcha/ChinaMobileEC/recogCaptcha.py", line 37, in <module>
    print pytesser.image_to_string(out)
  File "E:\Code\Captcha\pytesser\pytesser.py", line 36, in image_to_string
    call_tesseract(scratch_image_name, scratch_text_name_root)
  File "E:\Code\Captcha\pytesser\pytesser.py", line 25, in call_tesseract
    proc = subprocess.Popen(args)
  File "C:\Python27\lib\subprocess.py", line 710, in __init__
    errread, errwrite)
  File "C:\Python27\lib\subprocess.py", line 958, in _execute_child
    startupinfo)
WindowsError: [Error 2] 

WindowsError: [Error 2] 的意思是系统找不到指定的文件。

查看pytesser中的代码,其实就是一个调用 tesseract.exe 识别图片的过程,其中代码如下:

tesseract_exe_name = 'tesseract'

def call_tesseract(input_filename, output_filename):
    """Calls external tesseract.exe on input file (restrictions on types),
    outputting output_filename+'txt'"""
    args = [tesseract_exe_name, input_filename, output_filename]
    proc = subprocess.Popen(args)
    retcode = proc.wait()
    if retcode != 0:
        errors.check_for_errors()

就是调用 subprocess.Popen() 执行 tesseract input_filename output_filename, 这样会将识别结果写到out_filename的txt文件。这条命令你可以直接在cmd中到 tesseract.exe 目录下运行,也能看到识别结果。pytesser其实就是调用这个命令识别,然后读取结果返回。

所以上面错误中所说的找不到的文件就是指 tesseract.exe。所以解决这个问题的方法有两种:

第一种时将 tesseract.exe 所在路径添加到搜索路径,这样无论在哪儿执行 tesseract 系统都能找到。

第二种是修改 pytesser 中的代码, 将 tesseract 换成绝对路径即可:

import os

pwd = os.path.dirname(__file__)

# 将原来的 tesseract_exe_name='tesseract' 改成绝对路径
tesseract_exe_name = os.path.join(pwd,'tesseract')

博客地址:http://www.spiderpy.cn/blog/detail/35

© 著作权归作者所有

共有 人打赏支持
j_hao104
粉丝 202
博文 67
码字总数 101848
作品 2
程序员
私信 提问
linux下安装使用pytesser,图片文本识别

pytesser是一个用于图片文本识别的python模块:http://code.google.com/p/pytesser/,即从文本的截图中还原出文本信息; 网上在windows上安装、使用的资料比较多,而没有linux的资料; 作者虽...

鉴客
2012/06/28
8.7K
3
Python验证码识别:利用pytesser识别简单图形验证码

一、探讨 识别图形验证码可以说是做爬虫的必修课,涉及到计算机图形学,机器学习,机器视觉,人工智能等等高深领域…… 简单地说,计算机图形学的主要研究内容就是研究如何在计算机中表示图形...

j_hao104
2016/03/25
13.4K
1
博客园目录

table标签中thead、tbody、tfoot的作用http://www.cnblogs.com/zhouxinfei/p/8001510.html python selenium模拟滑动操作http://www.cnblogs.com/zhouxinfei/p/8001506.html Selenium webdriv......

_周小董
2017/12/09
0
0
批量重命名文件——python实现

任务很简单,某个目录下面有几千个文件,某些文件没有后缀名,现在的任务就是将所有的没有后缀名的文件加上后缀名,python有现成的函数可以实现,但是在实现过程中遇到几个问题,分享一下解决...

jingshishengxu
2012/09/07
0
0
Python3.6+selenium+pytesser3 实现爬虫:含验证码和弹框的页面信息爬取

最近帮实验室收集整理数据,学习并使用了一下爬虫,本篇 结合实例 系统的整理一下,教你如何写出一个你所需要的爬虫。 一、什么是爬虫 网络爬虫 也叫 网络蜘蛛 ,即 Web Spider,名字非常形象...

weberweber
2017/11/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

聊聊storm的AggregateProcessor的execute及finishBatch方法

序 本文主要研究一下storm的AggregateProcessor的execute及finishBatch方法 实例 TridentTopology topology = new TridentTopology(); topology.newStream("spout1", spout......

go4it
38分钟前
1
0
大数据教程(7.5)hadoop中内置rpc框架的使用教程

博主上一篇博客分享了hadoop客户端java API的使用,本章节带领小伙伴们一起来体验下hadoop的内置rpc框架。首先,由于hadoop的内置rpc框架的设计目的是为了内部的组件提供rpc访问的功能,并不...

em_aaron
今天
1
0
CentOS7+git+github创建Python开发环境

1.准备CentOS7 (1)下载VMware Workstation https://pan.baidu.com/s/1miFU8mk (2)下载CentOS7镜像 https://mirrors.aliyun.com/centos/ (3)安装CentOS7系统 http://blog.51cto.com/fengyuns......

枫叶云
昨天
1
0
利用ibeetl 实现selectpicker 的三级联动

1. js 直接写在html页面上面,ibeetl 就可以动态地利用后台传上来的model List ,不需要每次点击都要ajax请求后台 2. 使用selectpicker 的时候,除了对selecct option的动态处理后,还需要 $("#...

donald121
昨天
1
0
Android SELinux avc dennied权限问题解决方法

1. 概述 SELinux是Google从android 5.0开始,强制引入的一套非常严格的权限管理机制,主要用于增强系统的安全性。 然而,在开发中,我们经常会遇到由于SELinux造成的各种权限不足,即使拥有“...

TreasureWe
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部