《PIL:从入门到放弃》
最近在学习用Python写爬虫,在模拟登录的时候遇到了这样一个问题,如何处理网站的验证码。
好在Python是胶水语言,很轻松地在百度上找到了解决方案,用Google的OCR开源项目模块Pyesser就能实现简单的图片文字转文本。不用去学习复杂的图像识别,学会Pyesser模块的使用就能实现这样的一个功能。对于我这种小白来说简直不能再棒了!
啃完了其他大牛写的示例代码,我也跃跃欲试起来,在Pycharm里写下了我的第一个验证码识别程序。
实现这个功能需要用到两个Python第三方模块:Pyesser和PIL(Python Image Library),安装Pyesser的过程倒不是很复杂,直接在CSDN上下载源码根据教程就能解决,至于PIL也能在Pycharm的Project Interpreter中找到,看似简单的安装过程,却是我噩梦的开始。
选中PIL,点击install,提示“non zero exit code”,看不懂没关系,百度。综合了几个大牛的博客,我得出了一个很不成熟的结论,“Pycharm提供的PIL模块版本不对”,那没事,直接用pip install安装吧,失败。继续百度,尝试其他解决方案,一直是error。有点儿气馁,便开始抱怨,“估计是系统的问题,果然Windows不适合做Python开发啊!”
于是,转战CentOS,继续pip install PIL,报错“No matching distribution found for PIL”,没有这个包?继续百度,大牛们提供的解决方案也是五花八门,看得我似懂非懂,逐个去试也是很久没有进展,这个时候在某大牛的个人博客中看到了这句话,“PIL已经停止了对Python2.7的支持,赶紧去用Python3.6吧!”
那看来,果然还是环境的问题,于是我又哼哧哼哧地去安装了Python3.6,费了九牛二虎之力搞定了环境,发现还是行不通。那看来这就是从入门到放弃了,再试一次,如果还是解决不了就不玩了。
上天不负有心人....终于在简书里看到了一丝希望的曙光,从一个大牛的文章中了解到,一直安装失败的原因是“PIL的官方版本最后一次维护是2009年,现在已经宣布停止维护,Pillow是PIL的fork版本,还在继续维护更新,建议安装Pillow”,OK,去尝试pip install pillow,接下来可以说是喜极泪奔了,‘Successfully installed olefile-0.44 pillow-4.1.0’,回Python2.7去尝试,success,回Windows的Pycharm去选择Pillow安装,success。
安装PIL(或者说是Pillow?)也算告一段落了,说说这次排错过程中的一些反思和感想
(1)遇到问题时不要轻易认为是客观环境造成的(比如我一开始认为Windows不适合做Python开发,Python2.7不支持PIL),也有可能是自己技术不过硬。
(2)查资料时一定要有针对性,切记不能看到一个解决方案就直接去尝试,要结合自身实际情况(例如开发环境、报错信息等)思考,不然会走很多不必要的弯路,浪费时间。
(3)要学会透过问题看本质,先去熟悉一下模块本身而不是直接搜索如何安装,也许会有意想不到的收获。
第一次在简书上发表文章,排版可能有点问题,还请各位多多指教!