Python solicita ImportError: no se puede importar el nombre HeaderParsingError

SO: Mac OS X. Cuando bash ejecutar el código siguiente, aparece el error:

ImportError: no se puede importar el nombre HeaderParsingError

He adjuntado el rastreo debajo del código.

He intentado resolver este problema durante 20 minutos ahora, usando Google y otro stackoverflow. He intentado correr:

pip instalar urllib3 – actualizar

También he intentado reinstalar el paquete de solicitudes.

No ayudó.

Esto parece ser un problema con mis solicitudes o el paquete urllib3. Alguien ha tenido un problema similar?

El código:

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': "

A new comment

", '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)

Este es el rastreo:

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

requests viene con su propia copia de la biblioteca urllib3 , en el subdirectorio requests/packages . Es esta copia la que de alguna manera está rota.

Reinstalar las requests sí; actualice (como máximo tiene la versión 2.1.0 , dada la from .packages import charade as chardet línea de from .packages import charade as chardet ), o reinstale la versión existente.

La reinstalación con pip se puede hacer con el interruptor --force-reinstall :

 pip install --force-reinstall requests==2.1.0 

o forzar una mejora:

 pip install --upgrade requests 

Tuve el mismo problema mientras intentaba simplemente hacer cualquier comando usando pip. Al final encontré una solución muy simple, solo use sudo antes de pip .

Específicamente para el problema anterior, he usado el siguiente comando.

 sudo pip install --upgrade urllib3 

Espero que eso ayude.