我注意到我无法再使用 pip,因为无论我对 pip 做什么,都会出现导入错误,甚至不能只运行“pip”而不得到:
Traceback (most recent call last):
File "/usr/bin/pip", line 9, in <module>
load_entry_point('pip==1.5.6', 'console_scripts', 'pip')()
File "build/bdist.linux-x86_64/egg/pkg_resources/__init__.py", line 489,
in load_entry_point
File "build/bdist.linux-x86_64/egg/pkg_resources/__init__.py", line 2843,
in load_entry_point
File "build/bdist.linux-x86_64/egg/pkg_resources/__init__.py", line 2434,
in load
File "build/bdist.linux-x86_64/egg/pkg_resources/__init__.py", line 2440,
in resolve
File "/usr/lib/python2.7/dist-packages/pip/__init__.py", line 74, in
<module>
from pip.vcs import git, mercurial, subversion, bazaar # noqa
File "/usr/lib/python2.7/dist-packages/pip/vcs/mercurial.py", line 9, in
<module>
from pip.download import path_to_url
File "/usr/lib/python2.7/dist-packages/pip/download.py", line 22, in
<module>
import requests, six
File "/usr/lib/python2.7/dist-packages/requests/__init__.py", line 80, in
<module>
from . import utils
File "/usr/lib/python2.7/dist-packages/requests/utils.py", line 25, in
<module>
from .compat import parse_http_list as _parse_list_header
File "/usr/lib/python2.7/dist-packages/requests/compat.py", line 94, in
<module>
from urllib3.packages.ordered_dict import OrderedDict
ImportError: No module named ordered_dict
无法使用 pip 安装 urllib3 或 setuputils,因此我尝试下载然后使用 setup.py 安装它们。但没有任何效果。我该怎么办?
答案1
我遇到了同样的问题,这个问题的常见解决方案是使用 pip 降级 urllib3。但是,正如您所知,由于上述错误,我们无法执行任何 pip 命令,因此降级不是解决此问题的方法。
答案很可能是您安装了错误的 urllib3 版本。
我的电脑上安装了两个不同的版本,pip 选择了错误的版本(没有 OrderedDict)。要检查,请运行您的 python 解释器并检查您的 urllib3 版本。
import urllib3
urllib3.__version__
'1.16'
确保你没有安装过较旧的 urllib3(就我而言,我先通过 apt-get install python-urllib3 安装了它,后来又通过 python-pip 安装了它)
删除 python-urllib3 后,检查是否已安装 urllib3
cd /usr/local/lib/python2.7/dist-packages/
如果没有 urllib3,请重新安装 python-pip(这也将安装正确版本的 urllib3)。