操作系统: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('/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,解决了这个问题! 如果您将其发布为答案,我会接受。 为了使此工作有效,我必须先卸载请求,然后再重新安装它。
似乎,即使在一年多之后,我们仍然继续看到此错误,还是有时间将其记录为错误/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个数据点。
由于错误似乎再次发生,我添加了/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》对你有帮助,请点赞、收藏,并留下你的观点哦!