簡體   English   中英

Scrapy拋出ImportError:無法導入名稱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,安裝新的更新版本,該版本應與系統的其余部分不沖突。 使用自制程序包管理器的方法如下:

  1. 按照http://brew.sh/中的說明安裝自制軟件
  2. 更新您的PATH變量,以指出應在系統軟件包之前使用自制軟件包(如果將zsh用作默認外殼,則將.bashrc更改為.zshrc):

回聲“導出路徑= / usr / local / bin:/ usr / local / sbin:$ PATH” >>〜/ .bashrc

  1. 重新加載.bashrc以確保已進行更改:

來源〜/ .bashrc

  1. 安裝python:

brew安裝python

  1. 最新版本的python已捆綁了pip,因此您無需單獨安裝。 如果不是這種情況,請升級python:

釀造更新; 釀造升級python

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM