python引入header_Python请求ImportError:无法导入名称HeaderParsingError
操作系統:Mac OSX。當我嘗試運行下面的代碼時,出現錯誤:
ImportError: cannot import name HeaderParsingError
我已在代碼下方附加了追溯。
我已經嘗試使用Google和其他stackoverflow解決此問題20分鐘。 我試過跑步:
pip install urllib3 --upgrade
我也嘗試過重新安裝請求包。
它沒有幫助。
這似乎與我的請求或urllib3包有關。 有人遇到過類似的問題嗎?
編碼:
import requests
import json
def printResponse(r):
print '{} {}
'.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
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
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
請格式化您的代碼。
@salmanwahed,不確定您的意思。 我以推薦的方式包含了代碼。 選項卡有問題嗎? 它可以與我的IDE(pyCharm)一起使用。
是代碼中的縮進問題。
不確定如何進入此狀態,但是您需要重新安裝requests本身。 它在requestspackages目錄中包含urllib3的版本。 導致此問題的原因是requestspackagesurllib3exceptions.py。
@MartijnPieters,謝謝,將嘗試。
@MartijnPieters,解決了這個問題! 如果您將其發布為答案,我會接受。 為了使此工作有效,我必須先卸載請求,然后再重新安裝它。
似乎,即使在一年多之后,我們仍然繼續看到此錯誤,還是有時間將其記錄為錯誤github.com/kennethreitz/requests/issues/3670
requests帶有自己的urllib3庫副本,位于requests/packages子目錄中。正是這個副本被打碎了。
重新安裝requests本身;升級(給定from .packages import charade as chardet行,您最多具有2.1.0版本),或者重新安裝現有版本。
可以使用--force-reinstall開關完成pip的重新安裝:
pip install --force-reinstall requests==2.1.0
或強制升級:
pip install --upgrade requests
對我來說,不是請求urllib3而是實際的請求,因此[sudo] pip uninstall urllib3和[sudo] pip install urllib3可以解決問題。
在RHEL上遇到了同樣的問題,并且強制重新安裝工作。 這意味著它經常發生,解放的請求被破壞。
@sorin:我不知道。 我這里只有3個數據點。
由于錯誤似乎再次發生,我添加了github.com/kennethreitz/requests/issues/3670。
我只是嘗試使用pip發出任何命令時遇到了相同的問題。最后,我找到了一個非常簡單的解決方案,只需在點子之前使用sudo。
專門針對上述問題,我使用了以下命令。
sudo pip install --upgrade urllib3
希望對您有所幫助。
" urllib3"包本身可能是一個問題。卸載/安裝將解決此問題。
sudo pip uninstall urllib3
sudo pip install --upgrade urllib3
就我而言,錯誤是:
ImportError: cannot import name UnrewindableBodyError
另一個問題可能是,urllib3是通過pip安裝的,而請求是通過yum repo安裝的,反之亦然。在這種情況下,解決方法是完全刪除這些庫并通過相同的存儲庫進行安裝。
我建議使用點yum來安裝這兩個軟件包,因為它易于維護并且具有更多控制權。操作系統修補或VM維護活動等所需的任何進一步的yum更新,都不會影響通過pip安裝的軟件包。
首先通過pip和yum刪除" urllib3"和" requests"的所有安裝:
sudo pip uninstall urllib3 -y
sudo pip uninstall requests -y
sudo yum remove python-urllib3 -y
sudo yum remove python-requests -y
現在僅通過pip安裝兩個軟件包:
sudo pip install --upgrade urllib3
sudo pip install --upgrade requests
要僅通過yum安裝兩個軟件包:
sudo yum install python-urllib3
sudo yum install python-requests
總結
以上是生活随笔為你收集整理的python引入header_Python请求ImportError:无法导入名称HeaderParsingError的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php laravel 默认cookie
- 下一篇: 模拟电磁曲射炮设计报告_毕业设计展 |