造新轮子啦,让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打包的坑,本文重点是这个。
这是我的目录大纲,一级是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 = 'slysly759@gmail.com',
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',
)
|
- 第二个坑,网上都喜欢一个二个的告诉我说 先去官网pypi注册一下,然后运行
python setup.py register
但是我运行了一会,就报错说需要byte like 不是str 请看源码 我本身就造了一个轮子心情好得很 我还要再造一个么肯定不行,那就换一个上传工具 我们先安装twine 然后运行一下代码即可
1twine upload -r pypi dist/*
我自己测试了一下 可以用 pip install pytesser3,如图
同时内置code.py 检测这个轮子是否好用
需要注意的是,务必安装google的Tesseract OCR 最好默认安装 谢谢
另外:PIL这个坑自己去踩,谢谢~
源码地址:
https://github.com/songluyi/pytesser3
期待你的star