关于在osx EI 上装scrapy环境的问题&解决方法

mac环境下安装scrapy的问题

  • 安装scrapy依赖的模块之一six
    OSError: [Errno 1] Operation not permitted:
  • 安装完成后运行scrapy时导入的模块错误
    ImportError: cannot import name xmlrpc_client

一开始的解决办法

经过网上一番搜索后,看到了这篇文章安装Scrapy 1.0.3,安装成功
具体来说就是使用sudo pip install scrapy --ingnore-installed six 命令安装scrapy

安装成功之后还需要在命令行中打export PYTHONPATH=/Library/Python/2.7/site-packages:$PYTHONPATH 然后再运行scrapy

照着这个教程很快安装好了scrapy于是开始干活了.但是过了一段时间之后,因学习需要参考了别人的项目,gitclone了一份分析之后想运行看看效果,很悲剧的又出现了ImportError: cannot import name xmlrpc_client问题.当时觉得比较奇怪,自己的scrapy可以运行为什么到这个新的项目不可以呢?在网上搜的解决方法,又重新遇到了最初的问题OSError: [Errno 1] Operation not permitted:也正是因为这个原因,让我下定决心去思考下出现这些问题的背后根本原因是什么? 有没有什么更好的解决方法?

问题分析

完全解决了我心中的困惑是看到了最近发表的一篇博文解决mac osx下pip安装ipython权限的问题

其实权限问题… OSError: [Errno 1] Operation not permitted , 各种的root都不可以,想到了一个粗暴的方式,直接针对share进行chmod的授权。 结果… 提示root也是没有权限操作系统的目录。 我突然发觉肯定是新版的osx有了某种机制制止我们直接的修改/System文档数据。

google了后,发现果然如我的所料…. 新系统有个叫sip的机制。 你暂时不能直接在终端进行 csrutil disable 会出现错误提示,引导你去mac osx的恢复模式进行操作。

由于El Capitan引入了SIP机制(System Integrity Protection),默认下系统启用SIP系统完整性保护机制,无论是对于硬盘还是运行时的进程限制对系统目录的写操作。 这也是我们安装ipython失败的原因….

看到这里我突然想起当初解决的安装six模块时候使用的命令

sudo pip install scrapy --ingnore-installed six

当时只想解决问题,并没有考虑到这条命令背后的作用.现在回想起来注意到了命令后面加的参数--ingnore-installed six 那么当时出现的 Operation not permitted是不是也因为six本身是系统的目录的一部分呢?

经过一番搜索,果然osx系统自带了一份six模块,并且是在系统目录里面的
这就是为什么我们当初使用pip install scrapy时候会出现报错了.因为安装依赖six模块需要更改系统目录下的six模块,而因为osx Ei Capitan新引用的SIP机制在,所以我们无法修改

解决方法

解决方法有两种

1.既然已经知道了是sip机制在从中作梗,那么把他关掉就可以了.在那篇博文中也详细列出了关闭的方法

现在的解决办法是取消SIP机制,具体做法是:

重启电脑,按住Command+R(直到出现苹果标志)进入Recovery Mode(恢复模式)

左上角菜单里找到实用工具 -> 终端

输入csrutil disable回车

重启Mac即可

如果想重新启动SIP机制重复上述步骤改用csrutil enable即可

我们现在再看看sip的状态, 这样再安装ipython、gevent再也不会提示无法写入的权限提示了/

不过这个方法是我解决问题之后才看到的,所以可行性还待验证

2.使用homebrew

homebrew简称brew,是类似Red hat的yum,Ubuntu的apt-get软件包依赖工具.

而且好处是安装的东西默认都会放在usr/local/lib/里面.这样需要系统权限的问题

这是官网 homebrew

你要做的很简单,只需在命令行中

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

在安装成功之后,可能需要在.bashrc里面加入(这一步不一定需要)

export PATH=/usr/local/bin:/usr/local/sbin:$PATH

然后再

homebrew install python

同时这个会帮你把系统默认的python切换到homebrew安装的python目录下,完成之后再

sudo pip install scrapy

就可以了

运行过程中的cannot import

在项目里我使用了一个jpype的模块.但是在scrapy运行的时候却出现cannot import jpype.这个让我比较纳闷,因为我确实安装成功了.在python shell里面我敲入import jpype也能成功导入.想来想去可能是因为bash里面没有加入这个模块的python path.于是我尝试在命令行里面打

export PYTHONPATH=jpype的目录:$PYTHONPATH

再运行scrapy的项目.成功了.

感想

mac下装scrapy环境说实话感觉是比较坑,而且当出现问题时候第一想法就是复制报错内容去搜索,这样得出的解决方法只能解决一时燃眉之急,却没有根本解决问题. 解决了sip机制问题的并不一定也恰好需要使用scrapy这些我们也无法搜到,所以也有了写这篇文章记录下来想法,方便同样需要装scrapy朋友.

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

推荐阅读更多精彩内容