Pip 在 Linux 上无法运行,返回错误:“从 urllib3.packages.ordered_dict 导入 OrderedDict ImportError:没有名为 ordered_dict 的模块”

Pip 在 Linux 上无法运行,返回错误:“从 urllib3.packages.ordered_dict 导入 OrderedDict ImportError:没有名为 ordered_dict 的模块”

我注意到我无法再使用 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)。

相关内容