操作系统:Mac OS X.当我尝试运行下面的代码时,我收到错误:
ImportError:无法导入名称HeaderParsingError
我在代码下方附加了回溯。
我已经尝试使用Google和其他stackoverflow解决此问题20分钟了。我试过跑:
pip install urllib3 --upgrade
我也尝试重新安装请求包。
没有用。
这似乎是我的请求或urllib3包的问题。有人有过类似的问题吗?
代码:
fn main() {
let mut i1;
let mut i2;
let mut input: &mut Read = match Some("file-from-parser.txt") {
Some(ifname) => {
i1 = BufReader::new(File::open(ifname).unwrap());
&mut i1
}
None => {
i2 = io::stdin();
&mut i2
}
};
rc4(&[1, 2, 3], input, &mut io::stdout());
}
这是追溯:
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)
答案 0 :(得分:18)
urllib3
在requests/packages
子目录中附带了自己的requests
库副本。 此副本以某种方式被破坏。
重新安装from .packages import charade as chardet
本身;要么升级(最多September 2014,给定pip
行),要么重新安装现有版本。
使用--force-reinstall
开关重新安装pip install --force-reinstall requests==2.1.0
:
pip install --upgrade requests
或强制升级:
function loopl(){
$('.mCSB_container').animate({ "left": "+=80px" }, "800", 'linear', loopl );
}
function loopr(){
$('.mCSB_container').animate({ "left": "-=80px" }, "800", 'linear', loopr );
}
function stop(){
$('.mCSB_container').stop();
}
$( "#left" ).hover(loopl, stop);
$( "#right" ).hover(loopr, stop);
答案 1 :(得分:2)
当我只是尝试使用pip创建任何命令时,我遇到了同样的问题。最后我发现了一个非常简单的解决方案,只需在 pip 之前使用 sudo 。
特别针对上述问题,我使用了以下命令。
sudo pip install --upgrade urllib3
希望这会有所帮助。
答案 2 :(得分:1)
“ urllib3 ”包本身可能存在问题。卸载/安装将解决此问题。
sudo pip uninstall urllib3
sudo pip install --upgrade urllib3
就我而言,错误是:
ImportError:无法导入名称UnrewindableBodyError
另一个问题可能是,通过 pip 安装了 urllib3 ,并且通过 yum 回购安装了请求,或相反亦然。在这种情况下,解决方法是完全删除这些库并通过相同的存储库进行安装。
我建议您在yum上点一下以安装这两个软件包,因为它易于维护并且可以提供更多控制。操作系统补丁或VM维护活动等所需的任何进一步的yum更新,都不会影响通过pip安装的软件包。
首先通过pip和yum删除“ urllib3 ”和“ 请求”的所有安装:
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。如上所述,我更喜欢点而不是百胜。
仅通过yum安装两个软件包:
sudo yum install python-urllib3
sudo yum install python-requests
注意:在操作系统级别进行yum更新时,请始终使用虚拟环境来避免冲突。