Mac上安装Scrapy中的问题与解决方法

2016-08-02 You Li 更多博文 » 博客 » GitHub »

python develop diary

原文链接 https://liyouvane.github.io/Mac-Scrapy/
注:以下为加速网络访问所做的原文缓存,经过重新格式化,可能存在格式方面的问题,或偶有遗漏信息,请以原文为准。


之前在别的电脑上配置过scrapy,后来换了mac一直没有写过爬虫,今天跟着官方指南走的时候发现安装失败很久,代码里显示ImportError: No module named scrapy意识到安装可能出了一些问题。

Stackoverflow上面提到这个问题可能是由于文件命名导致的,但是我的文件命名并没有这个问题,于是就寻求别的解决办法,打算重新安装scrapy包。

按照Scrapy安装指南上的代码

xcode-select --install
echo "export PATH=/usr/local/bin:/usr/local/sbin:$PATH" >> ~/.zshrc
source ~/.zshrc
brew install python
brew update; brew upgrade python
pip install Scrapy

如果用的是mac自带bash,应当把上述代码中的zshrc替换为bashrc.

在重新安装的过程中,显示

OSError: [Errno 1] Operation not permitted: '/var/folders/6t/h404bjcd5tb_4q86tpv_251rv_0h0j/T/pip-sYsqDS-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/six-1.4.1-py2.7.egg-info'

这样的代码错误。在查询github上的解决方法之后,发现这似乎是El-Capitan系统的一个通病。办法就是 pip install scrapy --ignore-installed six。如果出现权限问题的话,就修改代码为sudo -H pip install scrapy --ignore-installed six

至此,我发现scrapy包已经安装正常,但是在爬虫代码运行的时候会报错ImportError: cannot import name xmlrpc_client。于是在Stackoverflow上面看到办法是需要重新安装six代码如下

sudo rm -rf /Library/Python/2.7/site-packages/six*
sudo rm -rf /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/six*
sudo pip install six

很多人评论说这样就可以解决问题了,然而我的电脑却仍然报错显示Operation not permitted。仍然是在Stackoverflow上的解答,让我找到了最终的解决方案。那就是在重启电脑之后,不停的按住cmd+R进入Recovery界面,在工具中选择终端Terminal,然后输入如下代码

csrutil disable
reboot

一切都解决了。