[英]Mac OS X El Capitan - Scrapy/Python ImportError: cannot import name xmlrpc_client
[英]Scrapy throws ImportError: cannot import name xmlrpc_client
通過pip安裝Scrapy之后,並安裝了Python 2.7.10
:
scrapy
Traceback (most recent call last):
File "/usr/local/bin/scrapy", line 7, in <module>
from scrapy.cmdline import execute
File "/Library/Python/2.7/site-packages/scrapy/__init__.py", line 48,
in <module>
from scrapy.spiders import Spider
File "/Library/Python/2.7/site-packages/scrapy/spiders/__init__.py",
line 10, in <module>
from scrapy.http import Request
File "/Library/Python/2.7/site-packages/scrapy/http/__init__.py", line
12, in <module>
from scrapy.http.request.rpc import XmlRpcRequest
File "/Library/Python/2.7/site-packages/scrapy/http/request/rpc.py",
line 7, in <module>
from six.moves import xmlrpc_client as xmlrpclib
ImportError: cannot import name xmlrpc_client
但是我可以導入模塊:
Python 2.7.10 (default, Jun 10 2015, 19:42:47)
[GCC 4.2.1 Compatible Apple LLVM 6.1.0 (clang-602.0.53)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import scrapy
>>>
這是怎么回事?
我剛剛在OS X上解決了這個問題。
請先備份您的文件。
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
Scrapy 1.0.0已准備就緒。
如果遇到錯誤rm: /System/Library/... Operation not permitted
請嘗試禁用系統完整性保護
請參閱在根El capitan上不允許的操作(禁用無根)
這是Mac OSX上Scrapy的一個已知問題。 您可以參考此鏈接 。
基本上,問題出在系統中的PYTHONPATH。 要解決此問題,請將當前的PYTHONPATH更改為指向Mac OSX的更新版本或沒有指向Python的版本。 在運行Scrapy之前,請嘗試:
export PYTHONPATH=/Library/Python/2.7/site-packages:$PYTHONPATH
如果可行,您可以永久更改.bashrc文件:
echo "export PYTHONPATH=/Library/Python/2.7/site-packages:$PYTHONPATH" >> ~/.bashrc
如果這些都不起作用,請查看上面的鏈接。
升級到Scrapy 1.0時,我遇到了同樣的問題。 經過大量的工作后,對我有用的解決方案是使用pip卸載六個:
sudo pip卸載六
然后通過easy_install重新安裝六個
easy_install六
希望有效!
比降級Scrapy更好的是升級六個版本:
pip install --upgrade six scrapy
這將允許您使用Scrapy 1.0中的所有功能;)
我只是有同樣的問題。 嘗試這個:
sudo pip卸載scrapy
sudo pip install scrapy == 0.24.2
然后試一試
我相信OS X上最好的解決方案應該是“不要使用系統python”。 這將使生活更輕松。 此鏈接顯示了如何執行此操作。
有一個已知的問題,阻止pip更新系統軟件包。 必須解決此問題才能成功安裝Scrapy及其依賴項。 以下是一些建議的解決方案:
(推薦)不要使用系統python,安裝新的更新版本,該版本應與系統的其余部分不沖突。 使用自制程序包管理器的方法如下:
- 按照http://brew.sh/中的說明安裝自制軟件
- 更新您的PATH變量,以指出應在系統軟件包之前使用自制軟件包(如果將zsh用作默認外殼,則將.bashrc更改為.zshrc):
回聲“導出路徑= / usr / local / bin:/ usr / local / sbin:$ PATH” >>〜/ .bashrc
- 重新加載.bashrc以確保已進行更改:
來源〜/ .bashrc
- 安裝python:
brew安裝python
- 最新版本的python已捆綁了pip,因此您無需單獨安裝。 如果不是這種情況,請升級python:
釀造更新; 釀造升級python
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.