Hello Scrapy 踩坑 ImportError: No module named _util

日期: 2018/08/16
操作系统: CentOS Linux release 7.4.1708
Python版本: Python 2.7.5


玩Python少不了搞搞爬虫,搞爬虫少不了搞搞Scrapy,搞Scrapy少不了写个HelloScrapy,写HelloScrapy少不了踩坑???
是的,入门第一坑。
因为之前搞过Django环境,所以基本上要安装的东西都有了。Scrapy的安装通过pip命令也是非常简单,百度一下,安装以及入门教程,几个命令几行代码,第一个爬虫已经整装待发,就差一声令下了。
事不宜迟——

scrapy crawl example

结果等待我的却是一个ImportError: No module named _util

很遗憾,没有吧当时的异常信息复制下来,现在环境搞好了就懒得重新去搞坏它了,总之,就是scrapy调用到了一个叫Twisted的模块,Twisted又调用到了OpenSSL模块,但是它需要from OpenSSL._util import lib。尴尬的是OpenSSL里没有_util这个模块!所以就报错了。

这时候当然还是百度看看有没有踩过同样坑的前辈啦,然而没有找到能帮我解决问题的帖子或博客。

于是只好自己想办法,捣鼓了一阵,还是一头雾水,冷静一下,其实问题还是很明显的,应该是版本问题。

那就把所有相关的依赖版本都更新了一下,费了不少力气,然并卵。

再冷静一下,其实问题真的很明显的,肯定是版本问题——更新不行就回退啊!

那么怎么回退呢?pip卸载模块的命令了解一下,然后再了解一下怎么在安装的时候指定版本,这都不是事儿,看命令帮助或者更简单点百度一下。

问题是回退哪些模块?回退到什么版本?

哪里出错?Twisted调用OpenSSL时出错,那么就是这两个不匹配,那就是拿这两个开刀。

回退到什么版本?机智如我,这时候还是要去官网看看啊!

https://doc.scrapy.org/en/latest/intro/install.html#intro-install

The minimal versions which Scrapy is tested against are:
- Twisted 14.0
- lxml 3.4
- pyOpenSSL 0.14

就是它了。
于是卸载并重装了pyOpenSSL ,

pip uninstall pyopenssl
pip install pyopenssl==0.14

试着启动爬虫,可惜,还不行。
于是接着重装了Twisted ,再试,终于成功了!


结论:

百度虽然很好用,但不一定任何时候都能帮你解决问题,遇到问题还是得自己冷静思考,其实问题有可能真的【很明显】。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值