电脑python版本是2.7的版本,成功安装scrapy version 1.8.3 框架下执行scrapy脚本,遇到了如下2个问题。
第一个问题:
运行scrapy脚本遇到的第一个错误ImportError: cannot import name suppress
解决办法:
-
pip uninstall attrs
-
pip uninstall queuelib
-
pip install queuelib==1.5.0
-
pip install attr
原因:
attrs和queuelib和安装的scrapy版本不兼容,卸载重新安装能解决。
第二个问题:
解决了“cannot import name suppress”的问题后,再次执行遇到了ImportError: cannot import name opentype问题。
解决过程:
在网上查看资料,发现这个opentype无法导入的问题与service_identity有关,于是通过cmd命令重新安装service_identity,发现本机上已经安装service_identity。
初步断定该问题应该不是无service_identity导致的,猜测该问题可能和我本机的service_identity的版本不兼容有关或者有可能和service_identity无关。继续查询资料,同时在网上下载了service_identity-21.1.0-py2.py3-none-any.whl包并重新安装。发现仍然解决不了问题,本机的service_identity版本已满足。
后继续查询资料,才知该问题确实和service_identity的版本有关,通过命令“pip install service_identity --force --upgrade”对service_identity来强制升级解决了该问题。
为什么通过命令“pip install service_identity --force --upgrade”可以解决该问题,而通过命令“pip install service_identity”不可以呢?在网上继续查询资料,得知通过install安装的时候 不会更新到最新版本。
解决办法:
通过命令“pip install service_identity --force --upgrade”强制升级service_identity
原因:
scrapy和我本机的service_identity的不兼容有关。