通过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
>>>
发生了什么事?
答案 0 :(得分:71)
我刚刚在我的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
请尝试禁用System Integrity Protection
见Operation Not Permitted when on root El capitan (rootless disabled)
答案 1 :(得分:32)
这是Mac OSX for Scrapy上的一个已知问题。您可以参考this link。
基本上问题在于系统中的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
如果这些都不起作用,请查看上面的链接。
答案 2 :(得分:18)
升级到Scrapy 1.0时,我遇到了同样的问题。经过无数次解决后,对我有用的解决方案是用pip卸载6个:
sudo pip uninstall six
然后通过easy_install重新安装六个
easy_install六
希望有效!
答案 3 :(得分:5)
最好降级Scrapy以升级你的六个版本:
pip install --upgrade six scrapy
这将允许您使用来自Scrapy 1.0的所有好东西;)
答案 4 :(得分:3)
我遇到了同样的问题。试试这个:
sudo pip uninstall scrapy
sudo pip install scrapy == 0.24.2
然后试一试
答案 5 :(得分:1)
我认为OS X的最佳解决方案应该是“不要使用系统python”。它会让生活更轻松。 This link显示了如何执行此操作。
有一个已知问题阻止pip更新系统包。必须解决这个问题才能成功安装Scrapy及其依赖项。以下是一些建议的解决方案:
(推荐)不要使用系统python,安装一个与系统其他部分不冲突的新版本。以下是使用自制软件包管理器的方法:
- 按照http://brew.sh/
中的说明安装自制软件- 更新您的PATH变量以声明应在系统软件包之前使用自制软件包(如果您使用zsh作为默认shell,则将.bashrc更改为.zshrc):
醇>echo“export PATH = / usr / local / bin:/ usr / local / sbin:$ PATH”&gt;&gt;的〜/ .bashrc
- 重新加载.bashrc以确保已进行更改:
醇>source~ / .bashrc
- 安装python:
醇>brew install python
- 最新版本的python将pip与它们捆绑在一起,因此您无需单独安装它。如果不是这种情况,请升级python:
醇>brew更新; brew升级python