2015-10-07 7 views
5

ОС: Mac OS X. Когда я пытаюсь запустить код ниже, я получаю ошибку:Python просит ImportError: не может импортировать Имя HeaderParsingError

ImportError: cannot import name HeaderParsingError

Я приложил отслеживающий ниже код.

Я попытался решить эту проблему в течение 20 минут с помощью Google и другого stackoverflow. Я пробовал работать:

pip install urllib3 --upgrade

Я также попытался переустановить пакет запросов.

Это не помогло.

Это, похоже, проблема с моими запросами или пакетом urllib3. У кого-то была аналогичная проблема?

Код:

import requests 
import json 


def printResponse(r): 
print '{} {}\n'.format(json.dumps(r.json(), sort_keys=True, indent=4, separators=(',', ': ')), r) 


r = requests.get('http://wikitest.orcsoftware.com/rest/api/content', 
      params={'title': 'new page'}, 
      auth=('seb', '****')) 
printResponse(r) 
parentPage = r.json()['results'][0] 
pageData = {'type': 'comment', 'container': parentPage, 
     'body': {'storage': {'value': "<p>A new comment</p>", 'representation': 'storage'}}} 
r = requests.post('http://localhost:8080/confluence/rest/api/content', 
       data=json.dumps(pageData), 
       auth=('admin', 'admin'), 
       headers=({'Content-Type': 'application/json'})) 
printResponse(r) 

Это отслеживающий:

Traceback (most recent call last): 
    File "/Users/sebastian/OneDrive/orc/restAPI/createSpace.py", line 1, in <module> 
    import requests 
    File "/Library/Python/2.7/site-packages/requests/__init__.py", line 61, in <module> 
    from . import utils 
    File "/Library/Python/2.7/site-packages/requests/utils.py", line 25, in <module> 
    from .compat import parse_http_list as _parse_list_header 
    File "/Library/Python/2.7/site-packages/requests/compat.py", ine 7, in <module> 
    from .packages import charade as chardet 
    File "/Library/Python/2.7/site-packages/requests/packages/__init__.py", line 3, in <module> 
    from . import urllib3 
    File "/Library/Python/2.7/site-packages/requests/packages/urllib3/__init__.py", line 16, in <module> 
    from .connectionpool import (
    File "/Library/Python/2.7/site-packages/requests/packages/urllib3/connectionpool.py", line 33, in <module> 
    from .connection import (
    File "/Library/Python/2.7/site-packages/requests/packages/urllib3/connection.py", line 41, in <module> 
    from .util import (
    File "/Library/Python/2.7/site-packages/requests/packages/urllib3/util/__init__.py", line 4, in <module> 
    from .response import is_fp_closed 
    File "/Library/Python/2.7/site-packages/requests/packages/urllib3/util/response.py", line 3, in <module> 
    from ..exceptions import HeaderParsingError 
ImportError: cannot import name HeaderParsingError 
+0

Пожалуйста, отформатируйте свой код. –

+0

@salmanwahed, не уверен, что вы имеете в виду. Я включил код в рекомендуемый способ. Что-то не так с вкладками? Он работает с моей IDE (pyCharm). – seb

+0

есть проблема с отступом в коде. –

ответ

12

requests поставляется со своей собственной копией urllib3 библиотеки, в подкаталоге requests/packages. Это эта копия, которая как-то сломана.

Переустановить requests сам; либо обновления (у вас не более version 2.1.0, с учетом строки from .packages import charade as chardet) или переустановите существующую версию.

Переустановка с pip может быть сделано с --force-reinstall переключателем:

pip install --force-reinstall requests==2.1.0 

или принудительного обновления:

pip install --upgrade requests 
+1

Для меня это были не запросы urllib3, а фактические, поэтому '[sudo] pip uninstall urllib3' и' [sudo] pip install urllib3' сделал трюк. – radtek

+0

Получил ту же проблему на RHEL, и принудительная переустановка работала. Это означает, что это часто случается, когда запросы librate становятся сломанными. – sorin

+0

@sorin: Не знаю. У меня только 3 точки данных. –

0

Я была такая же проблема, когда я просто пытаюсь сделать любую команду, используя пип , В конце я нашел очень простое решение, просто используйте sudo до pip.

В частности, для вышеуказанной проблемы я использовал следующую команду.

sudo pip install --upgrade urllib3 

Надеюсь, что это поможет.