關于在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閱讀 228,739評論 6 534
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,634評論 3 419
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,653評論 0 377
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,063評論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,835評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,235評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,315評論 3 442
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,459評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,000評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,819評論 3 355
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,004評論 1 370
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,560評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,257評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,676評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,937評論 1 288
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,717評論 3 393
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,003評論 2 374

推薦閱讀更多精彩內容