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