Debian系统下Python 2.7导入requests模块失败问题求助
解决Python 2.7下安装requests后import报错的问题
我之前在Debian环境里用Python 2.7装requests时也碰到过一模一样的问题,咱们来一步步排查解决:
问题根源
从你给出的报错回溯能看出来,requests/__init__.py里的check_compatibility函数需要检查chardet模块的版本,但你的环境里要么没装chardet,要么版本不兼容——你执行pip install requests时只显示安装了urllib3和requests,说明chardet这个依赖没被自动安装(大概率是因为你的pip版本较旧,没法正确拉取所有依赖)。
解决方案
先确认chardet是否存在
打开终端执行这条命令,检查Python 2.7环境里有没有chardet:python2.7 -c "import chardet; print(chardet.__version__)"如果报错说找不到chardet模块,那就是问题所在了。
安装兼容版本的chardet
requests 2.18.4需要搭配chardet 3.x系列的版本,执行这条命令安装:pip2.7 install chardet==3.0.4(注意要用
pip2.7而不是pip,避免装到Python3的环境里)验证修复效果
再次打开Python 2.7交互环境,执行import requests,应该就能正常导入了。
额外排查点
如果还是报错,你可以检查下requests是不是真的装到了Python2.7的环境里:
pip2.7 show requests
看输出里的Location路径是不是指向Python2.7的site-packages目录,如果不是,说明你之前用错了pip命令,得用pip2.7重新装一遍requests:
pip2.7 install requests==2.18.4
内容的提问来源于stack exchange,提问作者user1418018




