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 = ‘[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‘, ) |
- 第二个坑,网上都喜欢一个二个的告诉我说 先去官网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