2015-10-07 37 views
5

Hệ điều hành: Mac OS X. Khi tôi đang cố gắng để chạy mã dưới đây, tôi nhận được lỗi:Python yêu cầu ImportError: không thể nhập tên HeaderParsingError

ImportError: cannot import name HeaderParsingError

Tôi đã gắn traceback dưới mã.

Tôi đã cố gắng giải quyết vấn đề này trong 20 phút ngay bây giờ, bằng cách sử dụng Google và stackoverflow khác. Tôi đã thử chạy:

pip install urllib3 --upgrade

Tôi cũng đã thử cài đặt lại gói yêu cầu.

Nó không giúp ích gì.

Điều này có vẻ là vấn đề với yêu cầu của tôi hoặc gói urllib3. Có ai có vấn đề tương tự không?

Mã:

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) 

Đây là 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

vui lòng định dạng mã của bạn. –

+0

@salmanwahed, không chắc chắn ý bạn là gì. Tôi đã bao gồm mã theo cách được đề xuất. Có vấn đề gì với các tab không? Nó hoạt động với IDE của tôi (pyCharm). – seb

+0

có vấn đề thụt đầu dòng trong mã. –

Trả lời

12

requests đi kèm với bản sao riêng của thư viện urllib3, trong requests/packages thư mục con. Đó là bản sao này bằng cách nào đó bị hỏng.

Tự cài đặt lại requests; hoặc nâng cấp (bạn có tối đa version 2.1.0, với dòng from .packages import charade as chardet) hoặc cài đặt lại phiên bản hiện tại.

Cài đặt lại với pip có thể được thực hiện với sự --force-reinstall switch:

pip install --force-reinstall requests==2.1.0 

hoặc buộc một bản nâng cấp:

pip install --upgrade requests 
+1

Đối với tôi nó không phải là yêu cầu urllib3 nhưng thực tế, do đó, một '[sudo] pip gỡ cài đặt urllib3' và' [sudo] pip install urllib3' đã thực hiện thủ thuật. – radtek

+0

Có cùng một vấn đề trên RHEL, và buộc phải cài đặt lại. Điều này có nghĩa là nó xảy ra thường xuyên cho các yêu cầu hiệu chỉnh để trở thành bị hỏng. – sorin

+0

@sorin: Tôi không biết. Tôi chỉ có 3 datapoints ở đây. –

0

tôi đã cùng một vấn đề trong khi tôi đang đơn giản là cố gắng để thực hiện bất kỳ lệnh sử dụng pip . Cuối cùng tôi tìm thấy một giải pháp rất đơn giản, chỉ cần sử dụng sudo trước pip.

Cụ thể cho vấn đề trên, tôi đã sử dụng lệnh sau đây.

sudo pip install --upgrade urllib3 

Hy vọng điều đó sẽ hữu ích.

Các vấn đề liên quan