如何解决“ImportError:无法导入名称IncompleteRead”?
当我尝试用pip
或pip3
安装任何东西时,我得到:
$ 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
为我工作。
- sudo apt-get删除python-pip
- sudo easy_install请求== 2.3.0
- sudo apt-get install python-pip
您可以从这些页面手动下载最新的软件包:
- https://packages.debian.org/fr/stretch/all/python3-pip/download
- https://packages.debian.org/fr/stretch/all/python-pip-whl/download
然后,通过运行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