那些年,我们用mac遇到的梗

scrapy的安装

场景描述

最近公司业务不是很忙,想从网上找点资料出来,用来.....(你懂得,,,别想歪,我是正经人!)
由于本人是做java的,之前一直在用jsoup来玩爬虫,听说python的scrapy爬虫简直就是搜易贼(so easy)。
哪就走起吧.

配置状况

我用的mac版本是OS X EI capitan。

问题描述

本机自带了python2.7,直接安装scrapy就可以了,
不过在安装scrapy之前要先确定你的电脑是否已经安装了pip。
如果没安装pip的话,打开终端(我用的itrem2),执行以下的命令
sudo easy_install pip
pip 和 easy_install 都是 Python 的框架管理命令,pip 是对 easy_install的升级。
安装完pip之后我们要开始安装scrapy了,打开终端执行

sudo pip install Scrapy

如果执行成功,那么 Scrapy 就安装成功了,但往往事与愿违,你很有可能遇到如下错误:

OSError: [Errno 1] Operation not permitted: '/tmp/pip-Tz8iWw-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/six-1.4.1-py2.7.egg-info'

故障定位

我google了好久,查了好多原因,试了很多种办法发现都没说道点子上,最后在以为大神的博客里找到了原因

Because six ships with the system, and almost every popular python project uses it for forwards compatibility, pip tries to upgrade the version it finds first in the python path. Since SIP blocks this, it fails.
Any python dependencies system software has should be hard-coded, and the default path should look in /Library/Python/2.7/site-packages first in order.

原文传送门
这时候,我们知道了新版的mac系统增加了sip特性,即使使用 sudo 也无法使获得最高权限,无法对 MAC 系统级的目录进行更改

解决问题

既然我们已经发现问题出现在sip上了,那我们把sip特性关闭了不就完了么,那么我们怎么关闭sip特性呢。

  • 重启 MAC ,在重启的过程中按住 Command+R,进入安全模式
  • 在顶部的菜单栏中打开终端 ,输入 csrutil disable 命令关闭 SIP 安全特性(想要在开启sip的话就用csrutil enable命令即可)
  • 重启 MAC就ok了

此时,sip特性已经被我们关闭了,你可以重新安装scrapy试试,打开终端执行

sudo pip install Scrapy

在短暂的安装过程等待过后,你原本期望的是安装成功的提示,但是你发现安装又tm的失败了,fuck。
这时候又发送什么原因了呢,看来下控制台,你发现了如下的错误
Scrapy throws ImportError: cannot import name xmlrpc_client
这货又是什么梗?
于是乎,又google了下,发现是six的版本太低了原文传送门
那我们更新下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

ok,我们把six的版本也更新完了,哪这时候我们再试下安装scrapy把.
这时候会提示你installation successful,那就恭喜你成功的解决了sip,并安装了scrapy.

python3的安装

需求描述

大家应该都知道MAC OS X EI Capitan 系统 支持 python的多版本共存,即在我们的环境变量中可以配置python2和python3。

安装过程

  1. 先安装python3,如果你安装了homebrew,那么你只需要输入一条命令brew install python3即可安装python3

  2. 此时你可以输入python3试试,但是你发现这时候系统会提示命令找不到(你都没配置python3,系统找个毛啊)

  3. 这时候我们进行配置了,首先把安装好的 Python3 目录移到原本系统所持有的目录位置,在终端输入以下命令:
    sudo mv /usr/local/Cellar/python3/3.5.0/Frameworks/Python.framework/Versions/3.5 /System/Library/Frameworks/Python.framework/Versions
    注意:/usr/local/Cellar/python3/3.5.0/Frameworks/Python.framework/Versions/3.5是你的python3的安装路径,一般用homebrew安装的会是这个路径,如果你从官网下载安装的不一定是这个路径,具体路径请参考你的python3的安装路径

  4. 然后修改文件所属的 Group 设置 Group 为 wheel,在终端内输入以下命令sudo chown -R root:wheel /usr/local/Cellar/python3/3.5.0/Frameworks/Python.framework/Versions/3.5

  5. 重新链接可执行文件

 sudo ln -s /usr/local/Cellar/python3/3.5.0/Frameworks/Python.framework/Versions/3.5/bin/pydoc3.5 /usr/bin/pydoc3  
 sudo ln -s //usr/local/Cellar/python3/3.5.0/Frameworks/Python.framework/Versions/3.5/bin/python3.5 /usr/bin/python3
 sudo ln -s /usr/local/Cellar/python3/3.5.0/Frameworks/Python.framework/Versions/3.5/bin/pythonw3.5 /usr/bin/pythonw3
 sudo ln -s /usr/local/Cellar/python3/3.5.0/Frameworks/Python.framework/Versions/3.5/bin/python3.5m-config /usr/bin/python3-config  

查看结果

在终端里输入 python3 ,会出现如下提示,说明配置成功:

Python 3.5.0 (default, Sep 23 2015, 04:41:38)
[GCC 4.2.1 Compatible Apple LLVM 7.0.0   
(clang-700.0.72)] on darwin  
Type "help", "copyright", "credits" or 
"license" for more information.
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,560评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,104评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,297评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,869评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,275评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,563评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,833评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,543评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,245评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,512评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,011评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,359评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,006评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,062评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,825评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,590评论 2 273
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,501评论 2 268

推荐阅读更多精彩内容