问题描述
我试图在Mac OS X El Capitan上使用Scrapy.我已经安装了zsh,并且已经尝试了所有可以在网上找到的解决此问题的方法.我还查看了 Scrapy引发ImportError:无法导入名称xmlrpc_client 并且无法解决我的问题!
I am trying to use Scrapy on Mac OS X El Capitan. I have zsh installed and I have tried everything that I could find online to fix this issue. I have also looked at Scrapy throws ImportError: cannot import name xmlrpc_client and could not resolve my problem!
通过brew安装的Python并添加了"pip install scrapy":
Python installed via brew and added "pip install scrapy":
➜ DriverEBV which python
/usr/local/bin/python
我的.zshrc行如下:
My .zshrc has the following line:
export PATH=/usr/local/bin:$PATH
export PYTHONPATH="/Library/Python/2.7/site-packages"
这是我得到的错误:
➜ DriverEBV scrapy runspider DriverEBV.py
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
现在我运行"pip install scrapy"时,这就是我所看到的:
When I run "pip install scrapy" now this is what I see:
➜ DriverEBV pip install scrapy
Requirement already satisfied (use --upgrade to upgrade): scrapy in /Library/Python/2.7/site-packages
Requirement already satisfied (use --upgrade to upgrade): cssselect>=0.9 in /Library/Python/2.7/site-packages (from scrapy)
Requirement already satisfied (use --upgrade to upgrade): queuelib in /usr/local/lib/python2.7/site-packages (from scrapy)
Requirement already satisfied (use --upgrade to upgrade): pyOpenSSL in /usr/local/lib/python2.7/site-packages (from scrapy)
Requirement already satisfied (use --upgrade to upgrade): w3lib>=1.8.0 in /Library/Python/2.7/site-packages (from scrapy)
Requirement already satisfied (use --upgrade to upgrade): lxml in /Library/Python/2.7/site-packages (from scrapy)
Requirement already satisfied (use --upgrade to upgrade): Twisted>=10.0.0 in /Library/Python/2.7/site-packages (from scrapy)
Requirement already satisfied (use --upgrade to upgrade): six>=1.5.2 in /usr/local/lib/python2.7/site-packages (from scrapy)
Requirement already satisfied (use --upgrade to upgrade): service-identity in /Library/Python/2.7/site-packages (from scrapy)
Requirement already satisfied (use --upgrade to upgrade): cryptography>=0.7 in /usr/local/lib/python2.7/site-packages (from pyOpenSSL->scrapy)
Requirement already satisfied (use --upgrade to upgrade): zope.interface>=3.6.0 in /usr/local/lib/python2.7/site-packages (from Twisted>=10.0.0->scrapy)
Requirement already satisfied (use --upgrade to upgrade): characteristic>=14.0.0 in /Library/Python/2.7/site-packages (from service-identity->scrapy)
Requirement already satisfied (use --upgrade to upgrade): pyasn1-modules in /Library/Python/2.7/site-packages (from service-identity->scrapy)
Requirement already satisfied (use --upgrade to upgrade): pyasn1 in /Library/Python/2.7/site-packages (from service-identity->scrapy)
Requirement already satisfied (use --upgrade to upgrade): setuptools in /usr/local/lib/python2.7/site-packages (from cryptography>=0.7->pyOpenSSL->scrapy)
Requirement already satisfied (use --upgrade to upgrade): enum34 in /usr/local/lib/python2.7/site-packages (from cryptography>=0.7->pyOpenSSL->scrapy)
Requirement already satisfied (use --upgrade to upgrade): ipaddress in /usr/local/lib/python2.7/site-packages (from cryptography>=0.7->pyOpenSSL->scrapy)
Requirement already satisfied (use --upgrade to upgrade): idna>=2.0 in /usr/local/lib/python2.7/site-packages (from cryptography>=0.7->pyOpenSSL->scrapy)
Requirement already satisfied (use --upgrade to upgrade): cffi>=1.1.0 in /usr/local/lib/python2.7/site-packages (from cryptography>=0.7->pyOpenSSL->scrapy)
Requirement already satisfied (use --upgrade to upgrade): pycparser in /usr/local/lib/python2.7/site-packages (from cffi>=1.1.0->cryptography>=0.7->pyOpenSSL->scrape)
有人可以帮助我吗?
推荐答案
除了安装在/Library/Python
目录中的Mac OS X系统Python库之外,我什么都没有痛苦.对我来说,行之有效的是MacPorts和virtualenv的组合:
I've had nothing but pain mucking with the Mac OS X system Python libraries installed in the /Library/Python
directory. What has worked well for me is a combination of MacPorts and virtualenv:
-
安装 MacPorts
从MacPorts安装Python,pip和virtualenv:
Install Python, pip, and virtualenv from MacPorts:
/opt/local/bin/port install python27
/opt/local/bin/port install py27-pip
/opt/local/bin/port install py27-virtualenv
设置virtualenv:
Setup virtualenv:
/opt/local/bin/virtualenv-2.7 myenv
激活virtualenv(不要忘记点!)
Activate virtualenv (don't forget the dot!)
. myenv/bin/activate
安装scrapy
Install scrapy
pip install scrapy
这样,系统Python库将保持不变,您可以安装所需的任何软件包,而无需删除或升级现有软件包.
This way, the system Python libraries are untouched and you can install whatever packages you like without having to remove or upgrade existing packages.
这篇关于Mac OS X El Capitan-Scrapy/Python ImportError:无法导入名称xmlrpc_client的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!