如何解决“ImportError:无法导入名称IncompleteRead”?

当我尝试用pippip3安装任何东西时,我得到:

 $ sudo pip3 install python3-tk Traceback (most recent call last): File "/usr/bin/pip3", line 9, in <module> load_entry_point('pip==1.5.6', 'console_scripts', 'pip3')() File "/usr/lib/python3/dist-packages/pkg_resources.py", line 356, in load_entry_point return get_distribution(dist).load_entry_point(group, name) File "/usr/lib/python3/dist-packages/pkg_resources.py", line 2476, in load_entry_point return ep.load() File "/usr/lib/python3/dist-packages/pkg_resources.py", line 2190, in load ['__name__']) File "/usr/lib/python3/dist-packages/pip/__init__.py", line 61, in <module> from pip.vcs import git, mercurial, subversion, bazaar # noqa File "/usr/lib/python3/dist-packages/pip/vcs/mercurial.py", line 9, in <module> from pip.download import path_to_url File "/usr/lib/python3/dist-packages/pip/download.py", line 25, in <module> from requests.compat import IncompleteRead ImportError: cannot import name 'IncompleteRead' 

我有一个Ubuntu 14.10系统。

我该如何解决这个问题?

虽然这个以前的答案可能是这个原因,但是这个剪辑对我来说是一个解决scheme(在Ubuntu 14.04 ):

首先从包pipe理器中删除包:

 # apt-get remove python-pip 

然后安装最新的版本:

 # easy_install pip 

(感谢@Aufziehvogel,@JunchaoGu)

此问题是由您的pip安装和您的请求安装之间不匹配造成的。

截至请求版本2.4.0 requests.compat.IncompleteRead 已被删除 。 老版本的点子,例如从2014年7月起 ,仍然依赖于IncompleteRead 。 在当前版本的pip中, IncompleteRead的导入已被删除。

所以应该指责的是:

  • 请求,太快删除公共API
  • Ubuntu更新点太慢

你可以通过Ubuntu更新pip(如果有更新的版本)或者通过Ubuntu安装pip来解决这个问题。

修复pip3(在Ubuntu 14.10上工作):

 easy_install3 -U pip 

或者你可以删除所有requests

例如:

  • rm -rf /usr/local/lib/python2.7/dist-packages/requests*

在Ubuntu 14.04上,我通过使用pip安装引导脚本解决了这个问题,如文档中所述

 wget https://bootstrap.pypa.io/get-pip.py sudo python get-pip.py 

这对开发环境来说是一个很好的解决scheme。

问题是Python模块的requests 。 它可以通过修复

 $ sudo apt-get purge python-requests [now requests and pip gets deinstalled] $ sudo apt-get install python-requests python-pip 

如果你有Python 3的这个问题,你必须编写python3代替python

这应该适合你。 遵循这些简单的步骤。

首先,我们删除已安装的点,这样不会导致任何错误。

打开terminal。

input: sudo apt-get remove python-pip

它删除已安装的点子。

方法1

步骤:1 sudo easy_install -U pip

它会安装pip最新版本。

并将返回其地址:已安装的/usr/local/lib/python2.7/dist-packages/pip-6.1.1-py2.7.egg

要么

方法2

步骤:1转到此链接 。

步骤:2右键单击>>另存为..名称为get-pip.py。

步骤:3使用:cd转到与get-pip.py文件相同的目录

第4步:使用:sudo python get-pip.py

它会安装pip最新版本。

要么

方法-3

步骤:1使用:sudo apt-get install python-pip

它会安装pip最新版本。

我的Ubuntu版本的pipbuild议:

  pip install --upgrade pip 

只需运行easy_install -U pip解决了我的问题。

检查是否有更旧版本的requests位于~/.local/lib/python2.7/site-packages/中,如果是这种情况,请将其删除(更改path以反映您的python版本)。 这为我解决了这个问题。

在Windows中,这从pipe理提示符工作:

  • 删除C:\Python27\Lib\site-packages\requests*
  • easy_install requests==2.3
  • pip install --upgrade pip
  • pip install --upgrade requests

我尝试了下面的每个答案,但不能做到。

做了这个和工作

 sudo apt-get purge python-virtualenv sudo pip install pip -U 

之后,我只用pip安装了virtualenv

 sudo pip install virtualenv 

我build立了我正在开发的virtualenv,并且很容易地安装了软件包。 通过使用source /bin/activate进入virtualenv并尝试安装你的软件包,例如:

 pip install terminado 

它为我工作,虽然我使用python2.7而不是python3

检查在任何terminal窗口中是否存在python解释器。 如果这样杀了它,并尝试sudo pip为我工作。

  1. sudo apt-get删除python-pip
  2. sudo easy_install请求== 2.3.0
  3. sudo apt-get install python-pip

您可以从这些页面手动下载最新的软件包:

然后,通过运行dpkg安装它:

 dpkg -i *.deb 

对于CentOS我使用这个,它的工作请使用以下命令:

 sudo pip uninstall requests sudo pip uninstall urllib3 sudo yum remove python-urllib3 sudo yum remove python-requests 

(确认所有这些库已被删除)

 sudo yum install python-urllib3 sudo yum install python-requests