Mac OS X El Capitan – Scrapy / Python ImportError: невозможно импортировать имя xmlrpc_client

Я пытаюсь использовать Scrapy на Mac OS X El Capitan. У меня установлен zsh, и я испробовал все, что мог найти в Интернете, чтобы исправить эту проблему. Я также посмотрел на Scrapy throws ImportError: не могу импортировать имя xmlrpc_client и не смог решить мою проблему!

Python установлен с помощью варева и добавлен «pip install scrapy»:

➜ DriverEBV which python /usr/local/bin/python 

Мой .zshrc имеет следующую строку:

 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», теперь это то, что я вижу:

 ➜ 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) 

Кто-нибудь может мне помочь?

4 Solutions collect form web for “Mac OS X El Capitan – Scrapy / Python ImportError: невозможно импортировать имя xmlrpc_client”

У меня не было ничего, кроме боли, сбрасываемой с помощью системных библиотек Python для Mac OS X, установленных в каталоге /Library/Python . Что сработало хорошо для меня, это сочетание MacPorts и virtualenv:

  1. Установка MacPorts

  2. Установите Python, pip и virtualenv из MacPorts:

     /opt/local/bin/port install python27 /opt/local/bin/port install py27-pip /opt/local/bin/port install py27-virtualenv 
  3. Настройка virtualenv:

     /opt/local/bin/virtualenv-2.7 myenv 
  4. Активируйте virtualenv (не забудьте точку!)

     . myenv/bin/activate 
  5. Ускорить

     pip install scrapy 

Таким образом, системные библиотеки Python не затронуты, и вы можете установить любые пакеты, которые вам нравятся, без необходимости удаления или обновления существующих пакетов.

Что помогло мне в том, чтобы удалить шесть и scrapy, а затем установить еще раз :

 pip uninstall six pip uninstall scrapy pip install six pip install scrapy 

Запустите с помощью sudo если необходимо.


Или, вы также можете попробовать обновить шесть и пройти курс лечения:

 pip install --upgrade scrapy pip install --upgrade six 

Попробуйте удалить с помощью pip, а затем переустановите команду easy_install. У меня были те же проблемы с другим модулем python, и поэтому я исправил эту проблему для Mac OS X El Capitan.

Я считаю, что лучшим решением для OS X должно быть «Не использовать системный python». Это облегчит жизнь. Эта ссылка показывает, как это сделать.

Известна проблема, которая предотвращает обновление пакетов обновления пакетов. Это необходимо решить, чтобы успешно установить Scrapy и его зависимости. Вот некоторые предлагаемые решения:

(Рекомендуется) Не используйте системный python, установите новую, обновленную версию, которая не конфликтует с остальной частью вашей системы. Вот как это сделать, используя менеджер пакетов homebrew:

  1. Установите homebrew в соответствии с инструкциями в http://brew.sh/
  2. Обновите переменную PATH, чтобы указать, что пакеты homebrew должны использоваться перед системными пакетами (измените .bashrc на .zshrc, если вы используете zsh в качестве оболочки по умолчанию):

echo "export PATH = / usr / local / bin: / usr / local / sbin: $ PATH" >> ~ / .bashrc

  1. Перезагрузите .bashrc, чтобы убедиться, что изменения произошли:

источник ~ / .bashrc

  1. Установите python:

пиво установить python

  1. В последних версиях python есть комплект для связи с ними, поэтому вам не нужно устанавливать его отдельно. Если это не так, обновите python:

пивоваренное обновление; пиво обновления python

Python - лучший язык программирования в мире.