如何修复'ImportError:无法导入名称IncompleteRead'?

时间:2014-12-07 08:44:02

标签: python pip

当我尝试使用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系统。

如何解决此问题?

16 个答案:

答案 0 :(得分:432)

虽然this previous answer可能是原因,但这段剪辑对我来说是一个解决方案(在Ubuntu 14.04中):

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

# apt-get remove python-pip

然后安装最新版本:

# easy_install pip

(感谢@Aufziehvogel,@ JunchaoGu)

答案 1 :(得分:85)

此问题是由您的pip安装与请求安装之间不匹配引起的。

截至请求版本2.4.0 requests.compat.IncompleteRead has been removed。较旧版本的pip,例如from July 2014仍然依赖于IncompleteRead。在current version点子中,IncompleteRead的导入已被删除。

所以要责怪的是:

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

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

答案 2 :(得分:79)

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

easy_install3 -U pip

答案 3 :(得分:29)

或者您可以删除所有/* in Jquery*/ $('#play-pause-button').click(function () { if ($("#media-video").get(0).paused) { $("#media-video").get(0).play(); } else { $("#media-video").get(0).pause(); } });

例如:

  • requests

答案 4 :(得分:23)

在Ubuntu 14.04上,我使用pip安装引导脚本解决了这个问题,如the documentation

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

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

答案 5 :(得分:17)

问题是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

答案 6 :(得分:9)

这对你有用。按照这些简单的步骤。

首先,让我们删除已安装的点,这样就不会出现任何错误。

打开终端。

输入: 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 转到此link

步骤:2 右击&gt;&gt;保存为..名称为get-pip.py。

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

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

它将安装pip最新版本。

方式-3

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

它将安装pip最新版本。

答案 7 :(得分:8)

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

答案 8 :(得分:6)

我在ubuntu上的pip版本建议:

  pip install --upgrade pip

答案 9 :(得分:4)

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

答案 10 :(得分:4)

在Windows中,这可以从管理提示符开始:

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

答案 11 :(得分:3)

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

这是否有效

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

之后我刚刚用pip安装了virtualenv

sudo pip install virtualenv

我建立了我正在努力的virtualenv 包装很容易安装。 使用source /bin/activate进入virtualenv 并尝试安装您的软件包,例如:

pip install terminado

虽然我使用的是python2.7而不是python3

,但它对我有用

答案 12 :(得分:0)

检查是否在任何终端窗口中都有一个python解释器。如果是这样,请将其杀死并尝试sudo pip对我有用。

答案 13 :(得分:0)

  1. sudo apt-get remove python-pip
  2. sudo easy_install requests == 2.3.0
  3. sudo apt-get install python-pip

答案 14 :(得分:0)

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

然后,通过运行dpkg

来安装它
dpkg -i *.deb

答案 15 :(得分:0)

对于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