折腾一下午,终于在mac上把scrapy给装上,现总结一下经验,以供参考。
scrapy安装前的电脑状况描述:
a.电脑自带的是python2.7.10版本。
b.后面安装pycharm后,又自动安装上python3.5.1版本。
由于我学的都是python2.7版,所以一直都想在2.7版本上安装scrapy使用。
安装流程回顾:
1.打开电脑终端,输入命令行:
pip install scrapy
按Enter后,提示pip版本太低,然后百度了一下如何升级pip版本。输入命令行:
pip install –upgrade pip
提示pip升级成功,版本由v7点几升级到v9.0.1。
2.重新在命令行输入:
pip install scrapy
依然提示一大堆错误,当时忘记截图,查看安装失败原因也看不太懂,直接copy放到百度搜索,从搜索结果看,原因可能还是因为存在多个python版本,pip需要指定版本。
ps:我电脑上有两个版本,命令行直接输入python,进入的是系统默认的python版本,也即2.7.10版;如果在命令行输入python3,进入的就是3.5.1版本。
此时,我在命令行输入:
sudo pip3 install scrapy
安装成功!!!
我根据网上说的经验,在python的IDE中验证是否安装成功,在系统默认版本的IDE下,输入:
import scrapy
提示导入模块错误,没有命名为scrapy的模块。
然后我在python3的IDE中验证,未报错,说明确实安装成功!
这个原因我没想明白,从pip3方式安装过程的命令行来看,scrapy确实只安装到python3.5.1下面去了。我在想是否需要通过pip2给python2.7.10再次安装。
3.不死心,给python2.7.10再次安装,在命令行输入:
sudo pip2 install scrapy
提示一大堆报错,核心错误:
Found existing installation: six 1.4.1 DEPRECATION: Uninstalling a distutils installed project (six) has been deprecated and will be removed in a future version. This is due to the fact that uninstalling a distutils project will only partially uninstall the project.
查询百度,找到一篇科普文:pip安装依赖于six的库错误解决方案
然后使用其中的方式,命令行输入:
sudo pip2 install six –upgrade –ignore-installed six
sudo pip2 install scrapy
第一个命令行运行完,six版本升级到了v1.11.0,第二个命令行运行完,提示scrapy安装成功!
然鹅,在pycharm中实际使用(v2.7.10版本),一直提示scrapy(标红线提示)安装未成功。然后我又在pycharm中安装了一下scrapy,把v2.7.10和v3.5.1两个版本都装上了,pycharm上安装比较简单,也非常快,我想是否是因为我已经把他们安装了,pycharm只是获取一下路径而已。
但是在我在使用样例时,在v2.7.10版本中还是提示错误,错误原因:
xxxx.ImportError: No module named ‘http.client’
整了半天没明白,然后我直接新建了一个相同的项目,使用python3.5.1版本,结果可以完美跑起来。至此,放弃使用python2.7.10版本下的scrapy了。