2015-10-07 12 views
5

OS importieren: Mac OS X. Wenn ich versuche, den Code auszuführen, erhalte ich die Fehlermeldung:Python fordert Import: nicht Name HeaderParsingError

ImportError: cannot import name HeaderParsingError

Ich habe angebracht Zurückverfolgungs unter dem Code.

Ich habe versucht, dieses Problem für 20 min jetzt zu lösen, mit Google und anderen stackoverflow. Ich habe versucht zu laufen:

pip install urllib3 --upgrade

Ich habe auch versucht, das Anforderungspaket neu zu installieren.

Es hat nicht geholfen.

Dies scheint ein Problem mit meinen Anfragen oder Urlib3 Paket zu sein. Hat jemand ein ähnliches Problem gehabt?

Der Code:

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) 

Dies ist der Traceback:

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

formatieren Sie bitte Ihren Code. –

+0

@salmanwahed, nicht sicher, was du meinst. Ich habe den Code in der empfohlenen Weise eingefügt. Stimmt etwas nicht mit den Tabs? Es funktioniert mit meiner IDE (pyCharm). – seb

+0

ja Einrückungsproblem im Code. –

Antwort

12

requests kommt mit seiner eigenen Kopie der urllib3 Bibliothek im requests/packages Unterverzeichnis. Es ist diese Kopie, die irgendwie kaputt ist.

requests selbst neu installieren; entweder aktualisieren (Sie haben höchstens version 2.1.0, vorausgesetzt, die from .packages import charade as chardet Zeile), oder installieren Sie die vorhandene Version.

pip install --force-reinstall requests==2.1.0 

oder zwingen, ein Upgrade:

pip install --upgrade requests 
+1

Für mich war es nicht die Anfragen urllib3, sondern die eigentliche, also ein '[sudo] pip uninstall urllib3' und' [sudo] pip install urllib3' tat den Trick. – radtek

+0

Das gleiche Problem auf RHEL, und eine erzwungene Neuinstallation funktionierte. Dies bedeutet, dass es oft für Anfragen Librate passiert, gebrochen zu werden. – sorin

+0

@sorin: Ich weiß es nicht. Ich habe nur 3 Datenpunkte hier. –

0

Ich hatte das gleiche Problem, während ich einfach jeden Befehl zu machen versuche, pip mit

mit pip Neuinstallieren mit dem --force-reinstall Schalter erfolgen . Am Ende fand ich eine sehr einfache Lösung, verwenden Sie einfach sudo vor pip.

Speziell für das obige Problem habe ich folgenden Befehl verwendet.

sudo pip install --upgrade urllib3 

Hoffnung, die helfen wird.