造新轮子啦,让pytesser支持3.x啦~

http://www.songluyi.com/%E9%80%A0%E6%96%B0%E8%BD%AE%E5%AD%90%E5%95%A6%EF%BC%8C%E8%AE%A9pytesser%E6%94%AF%E6%8C%813-x%E5%95%A6/

0x00 前言

曾经用2.x版本的Python写过一个小小的验证码识别小程序,不到三十行,用的是pytesser 但是pytesser仅仅支持2.x版本,因此我们需要将这个轮子改写为3.x,方便我们调用。

等不及的小伙伴可以直接pip install pytesser3 即可完成轮子的安装

0x01 改写的时候遇到的坑

第一坑:

很多2.x能用 而3.x不能用的情况发生,比如引用的包发生改变 (import PIL 改为from PIL import Image) print 改变 except 一些修改,改好了以后,才到了 这个傻逼包内置的tessract用不了的问题,你需要自己安装Google 的图像识别引擎:Tesseract OCR网上有exe安装包  我这里为了方便大家就提供一下下载地址

第二坑:

pypi打包的坑,本文重点是这个。

  1. 这是我的目录大纲,一级是pytesser3 和一些readme setup.py文件 二级是__init__.py等py文件 ,不过还有一些其他的如图片文件 tif 字体文件,在二级目录还包含着 三级目录 等 那我是这么做呢可以看一下下面我的代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

from setuptools import setup, find_packages

setup(

name = ‘pytesser3‘,

version = ‘1.0.1‘,

keywords = (‘pytesser‘, ‘support 3.x‘),

description = ‘modify and let it support 3.x‘,

license = ‘MIT License‘,

install_requires = [‘requests‘],

author = ‘LouisSong‘,

author_email = ‘[email protected]‘,

packages = find_packages(),

package_data = {

# If any package contains *.txt files, include them:

‘‘: [‘*‘,‘tressdata/*],#看这里就好啦,就可以吧里面的都包含进来

# And include any *.dat files found in the ‘data‘ subdirectory

# of the ‘mypkg‘ package, also:

},

platforms = ‘any‘,

)

  1. 第二个坑,网上都喜欢一个二个的告诉我说 先去官网pypi注册一下,然后运行

    python setup.py register

    但是我运行了一会,就报错说需要byte like 不是str 请看源码 我本身就造了一个轮子心情好得很 我还要再造一个么肯定不行,那就换一个上传工具 我们先安装twine 然后运行一下代码即可

    1

    twine upload -r pypi dist/*

我自己测试了一下 可以用 pip install pytesser3,如图

同时内置code.py 检测这个轮子是否好用

需要注意的是,务必安装google的Tesseract OCR 最好默认安装 谢谢 

另外:PIL这个坑自己去踩,谢谢~

源码地址:

https://github.com/songluyi/pytesser3

期待你的star

原文地址:https://www.cnblogs.com/auschwitzer/p/9363293.html

时间: 2024-11-05 14:58:19

造新轮子啦,让pytesser支持3.x啦~的相关文章

我厌倦了 Redux,那就造个轮子 Rectx:第三集

仓库:215566435/rectx 前言 麻烦快去我的仓库里面喷: 老子学不动了,求不要更新. 呵呵,你没想到吧,这玩意儿竟然有第三集!我靠,我自己都没想到,让我们悄悄的回顾一下前两集完全没想到,竟然会有第二集! 我厌倦了 Redux,那就造个轮子 Rectx 第二集: immutable 痛点分析 第一集在这里:我厌倦了Redux,那就造个轮子:Rectx 算了,我都懒得写了,自己看吧,当然不看也无所谓,正式开始. 新的 Rectx 有什么不同? a light-weight state m

我为什么要造一个轮子——GNova开发小计

GNova最初叫做CSystem,是作为系统库来设计的. 我最初学习C++是在大学时期的专业课,学生时代也曾用C++写过一些算法,但项目和比赛一般是用C#和Java完成的.工作之后,由于项目需要,我们的业务平台需要使用C++进行编写.在当时,我总是认为C++的标准库SL不如Java的lang包和.Net的System库好用,再加上当时接触到了Qt的Core模块,以及项目合作单位自己的基础库封装,于是我渐渐萌生了编写一套属于自己的好用的基础库的想法,CSystem也就应运而生. 现在看来,当时的想

苹果要求所有新app以及版本更新必须支持iOS 8 SDK和64-bit

2014年10月20日,苹果官方发布了一则新闻,新闻内容如下: Starting February 1, 2015, new iOS apps uploaded to the App Store must include 64-bit support and be built with the iOS 8 SDK, included in Xcode 6 or later. To enable 64-bit in your project, we recommend using the defa

Keybase推新开放身分验证 可支持小型社交网站

把密钥作为身份的加密社交平台Keybase,宣布推出新的身分验证协议,可让任何小型网站透过Keybase来验证用户身分,过去只有大型网站如Twitter.GitHub.Reddit.Coinbase和Hacker News支持,现在开始向较小型的社群软件招手.最先支持的是分布式微部落格Mastodon,先开放31个站点.Mastodon可让任何人自建社交站点,让用户自己拥有数据,但又能互相追踪或追文,目前全球用户约2百万人.Keybase将用户社交媒体的身份对应到加密公钥上,等于是一个连接社交平

人民日报:安倍只“慰灵”不道歉对遇难者造新屈辱z

"美丽皱纹·孝行天下"活动以中韩共同关注的孝文化为主题,成功入选"2016年中韩人文交流共同委员会交流合作项目".此次活动邀请了来自甘肃省积石山县和贵州省遵义市的感动妈妈在韩国进行为期5天的文化交流.1779年建造的运输罪犯的"海王号" 4.熊本发生大地震,华人驰援送爱心,展示守望相助社群精神.但是特朗普称他不会将自己极尽奢华的风格带到白宫."白宫是个特殊的地方,"特朗普说,"我将在那里办公而不是装修."

PHP5.4新特性之上传进度支持Upload progress

在PHP5.4版本当中给我们提供了好用的特性,上传进度的支持,我们可以配合Ajax动态获取SESSION当中的上传进度: 在使用这一特性之前,需要现在php.ini文件当中进行相应的设置: 1 2 3 4 5 6 session.upload_progress.enabled[ = On] :                         是否启用上传进度报告(默认开启) session.upload_progress.cleanup[ = Off] :                    

硬造的轮子趟过的坑--浮点型转字符串函数

浮点型转字符串是最常见的一个功能了,对于弱类型语言来说更是几乎感觉不到.但现在问个问题?用C语言写一个浮点数转字符串的函数,有多难呢? 一开始写这个函数的时候是大二的时候,那时候在学C51单片机,用到1602显示屏,就是下图这货,通常遇到的情况就是要想要在屏幕上显示整数或者浮点数,1602封装的字库里面接口规范里接收的是字符串,所以在写程序时必须先把整数和浮点数转换成字符串.当时我就找到好像说 itoa , ftoa 这样的方法,但是那两个方法需要使用 stdlib.h 库,而Keil C51

ThinkPHP3.1新特性: 多层MVC支持

ThinkPHP基于MVC(Model-View-Controller,模型-视图-控制器)模式,不过均支持多层(multi-Layer)设计. 模型(Model)层:默认的模型层由Model类构成,但是随着项目的增大和业务体系的复杂化,单一的模型层很难解决要求,从3.1开始推出了多层Model的支持,设计思路很简单,不同的模型层仍然都继承自系统的Model类,但是在目录结构和命名规范上做了区分,例如在某个项目设计中需要区分数据层.逻辑层.服务层等不同的模型层,我们可以在项目的Lib目录下面创建

Microsoft PowerPoint文件管理控件Aspose.Slides新功能示例详解——支持字体回退

Aspose.Slides for .NET是独特的演示处理API,使应用程序能够读取,编写,修改和转换PowerPoint演示文稿.作为独立的API,它提供了管理PowerPoint关键功能的功能,例如管理文本,形状,表格和动画,向幻灯片添加音频和视频,预览幻灯片等等. 近期,Aspose.Slides for .NET更新至最新版v19.10,现在有一些非常有趣且实用的功能值得为大家讲解一下,比如新增支持字体回退,以及在占位符中设置提示文本,接下来通过一些简单的示例来为大家说明一下! 支持字