由于我需要使用爬虫进行练习,用的是windows10,所以安装过程很是艰辛。
报错1:
用python的pip安装tesserocr,发生如下代码错误:
经过查询tesserocr安装环境要求,需要leptonica-1.71版本以上文件;
确认代码中错误,确实发现安装过程中leptonica文件无法找到。
解决方法:
用Anaconda安装python环境。
使用Anaconda
由于用直接安装的python无法安装tesserocr,所以需要用conda安装,而conda集成在Anaconda上,如果单独安装conda需要很大的麻烦(深受其害)。
安装Anaconda,官网上的下载地址复制到迅雷上下载的比较快,毕竟浏览器下载大型文件特别慢。
我下载的是Anaconda Navigator1.9.6版:自带并支持Python3.7;
测试过程(报错过程):
打开Anaconda Prompt出现如下界面:
这里的【base】是Anaconda自带的一个环境,可以理解为另一个cmd界面的存在,可以在这个环境下进行conda,pip,python操作等,但是这个环境有着很多自己不了解,用不到,无法用的东西;
所以需要自己创建环境,我创建的是一个用于与Pycharm相连的环境【Anaconda-Pycharm】;
创建过程如下:
报错2:
由于服务器的问题,在conda安装好之后,默认的镜像是官方的,由于官网的镜像在境外,访问太慢或者不能访问,在创建新的环境时需要下载的文件(特指python)会耗费很长时间,以至于报错,n次尝试无法下载完成。
错误原因:Conda HTTPError;
解决方法:
为了能够加快访问的速度,这里选择了国内的的镜像,如清华和中科大,添加镜像路径,选择国内的一些镜像网站可以提供很多用户所需资源:
添加清华镜像:
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
删除镜像:
conda config --remove channels 'https://mirrors.ustc.edu.cn/anaconda/pkgs/free/ '
添加中科大镜像:
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/menpo/
我是把可用镜像都放进去了(C:\Users\Administrator\.condarc),本人的该文件内容如下:
ssl_verify: true
channels:
- https://mirrors.ustc.edu.cn/anaconda/cloud/menpo/
- https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/
- https://mirrors.ustc.edu.cn/anaconda/cloud/msys2/
- https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
- https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
- https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
- defaults
show_channel_urls: true
这样就可以让创建新的环境稳定进行,该(全新)环境内容如下:
这两者base环境和Anaconda-Pycharm环境,前者有太多内容,后者则较为简单,容易学习。
环境安装好了,然后就是安装自己所需的内容,这里我最为需要的就是tesserocr(错误百出)。
报错3:
$ conda install tesserocr pillow
Solving environment: ...working... failed
PackagesNotFoundError: The following packages are not available from current cha nnels:
- mitmproxy
Current channels:
- https://repo.anaconda.com/pkgs/main/win-64
- https://repo.anaconda.com/pkgs/main/noarch
- https://repo.anaconda.com/pkgs/free/win-64
- https://repo.anaconda.com/pkgs/free/noarch
- https://repo.anaconda.com/pkgs/r/win-64
- https://repo.anaconda.com/pkgs/r/noarch
- https://repo.anaconda.com/pkgs/pro/win-64
- https://repo.anaconda.com/pkgs/pro/noarch
- https://repo.anaconda.com/pkgs/msys2/win-64
- https://repo.anaconda.com/pkgs/msys2/noarch
To search for alternate channels that may provide the conda package you're
looking for, navigate to
https://anaconda.org
and use the search bar at the top of the page.
用了网传的方法,用:
conda install -c simonflueckiger tesserocr pillow
结果是:
根本无法下载,当然也有可能结果是上面添加的镜像内容中的根本没有可获取此资源的获取路径。
报错4:
也有用方法将原本的直接安装的Python,与Anaconda环境中的部分文件进行替换,但实际上虽然部分功能可能实现,但是治标不治本,安装tesserocr根本不能成功。
当然还有其他一些乱七八糟的问题,希望大家不要被弄昏了。
解决方法:
最好的办法还是自己以规范的方法进行安装,在目标环境下,用pip安装合适版本的tesserocr成功:
我选用的是(CSDN上下载的)tesserocr-2.3.1-cp37-cp37m-win_amd64.whl(成功)和tesserocr-2.4.0-cp37-cp37m-win_amd64.whl(与平台不兼容),结果如下:
没有报错,安装成功。
这里会偶尔更新其他遇到的问题,问题太多太繁杂了。
与pycharm连接
在工作环境中我们会集成开发环境去编码, 这里推荐JB公司的pycharm, 而pycharm也能很方便的和anaconda的虚拟环境结合
在
Setting => Project => Project Interpreter
里面修改 Project Interpreter , 点击齿轮标志再点击Add Local为你某个环境的python.exe解释器就行了
比如你要在learn环境中编写程序, 那么就修改为
D:\Software\Anaconda\envs\learn
, 可以看到这时候下面的依赖包也变成了learn环境中的包了.接下来我们就可以在pycharm中愉快的编码了.
如果后续需要在python中安装库或模块,只要在Anaconda Prompt中该环境下安装,就可以了。
报错5:
执行如下代码:
import tesserocr
from PIL import Image
image = Image.open('image2.png')
print(tesserocr.image_to_text(image))
报错:
File "tesserocr.pyx", line 2407, in tesserocr._tesserocr.image_to_text
RuntimeError: Failed to init API, possibly an invalid tessdata path: “本地某个路径”
解决方法:
错误原因就是这【本地某个路径】,找不到相关文件,为什么?因为路径错了。
原因一般是:
环境变量错了,我就是在设置TESSDATA_PREFIX的时候在路径最后加了一个【;】所以错了;
路径中有中文,换一个没有中文的路径,即将Tessact-OCR路径改为一个没有中文的路径,同时更新环境变量;
我用的是自己用画图写的文字“hello”,结果是:
参考链接:
https://www.jianshu.com/p/c74668743932
https://blog.csdn.net/sky_jiangcheng/article/details/80720304
https://blog.csdn.net/qq_41761293/article/details/86988511
https://www.jianshu.com/p/eaee1fadc1e9