「ImportError:名前をインポートできないIncompleteRead」を修正するにはどうすればよいですか?


284

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システムを使用しています。

この問題を解決するにはどうすればよいですか?



@cel:これはWindows用であり、すでに見たので、これは複製ではありません。
Martin Thoma 14

承認された回答のリンクは、ubuntuの課題追跡へのリンクです-したがって、この問題はWindows固有ではないようです。OP提案されているようにpythonを再インストールしてみましたか?
2014

@cel気にしないで、私は非常に単純な解決策を見つけました。
Martin Thoma 14

4
...何だったの?
Jonathan Hartley

回答:


433

一方で、この前の回答が理由かもしれないが、これはで(解決策として私のために働い切り取らUbuntu 14.04):

まず、パッケージマネージャーからパッケージを削除します。

# apt-get remove python-pip

そして、最新バージョンを一緒にインストールします。

# easy_install pip

(@ Aufziehvogel、@ JunchaoGuに感謝)


10
興味のある方へ::--upgrade (-U)強制アップグレード(PyPIで最新バージョンを検索)
Martin Thoma

11
を介してインストールすることでネイティブパッケージマネージャー(apt)を混同しないように注意する必要がありますeasy_install。可能であれば、私はにお勧めapt-get remove pipしてからeasy_install pip
Aufziehvogel

16
@Aufziehvogelapt-get remove python-pip
eggonlegs

7
基本的にこの答えは状況をさらに悪化させます。
hek2mgl 2015年

7
私にとって、これは「apt-get remove python3-pip」、「apt-get install python3-setuptools」、「easy_install3 pip」の順でした
Jason Pepas

85

この問題は、pipのインストールとリクエストのインストールの不一致が原因で発生します。

リクエストにより、バージョン2.4.0 requests.compat.IncompleteRead は削除されました。たとえば2014年7月以降の古いバージョンのpipは、依然としてに依存していIncompleteReadます。では、現在のバージョンのPIPの、輸入のIncompleteRead削除されました。

だから非難するのはどちらかです:

  • リクエスト、パブリックAPIをすばやく削除するため
  • UbuntuでPIPの更新が遅すぎる

この問題は、Ubuntu経由でpipを更新するか(新しいバージョンがある場合)、またはUbuntu以外にpipをインストールすることで解決できます。


3
pipインストール要求-U、問題を修正。
jonincanada 2015

2
@jonincanada pipがクラッシュしたときに、pipコマンドを実行するにはどうすればよいですか?
ピーター

80

pip3(Ubuntu 14.10で動作)を修正する場合:

easy_install3 -U pip

2
これはUbuntu 14.04でも機能します。これにより/usr/local/bin/pip、Python3用のがインストールされることに注意してください。以前pipはPython 2バージョンを実行していました。/usr/local/bin/pip完全に無効にして修正したので、明示的にpip2orを実行する必要がありpip3ます。
ネルソン

3
DebianのJessie場合python2.7- sudo apt-get purge python-requests(別の回答に示されている)apt-getでpipをパージして再インストールした後、実行するとeasy_install -U pipうまくいきました。
MikeiLL

1
私にとって何よりも。これは私のために働いた修正です。
Hamid

魅力的な作品!
失敗した科学者

33

または、すべて削除できますrequests

例えば:

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

これでうまくいきました。リクエストとpython-pipのインストールとの関係を知っているかも
しれません

requestsモジュールを見ると、このモジュール/ライブラリがHTTPリクエストの送信に使用されていることがわかります。あなたが削除した「Pythonパッケージインデックスリクエスト」からパッケージをダウンロードpipするためのrequestsモジュールには、インストール. And the pip必要な別のバージョンがあります。
Marius Stanca、2015年

これは私にとってもうまくいきました。pipRaspbian Jessie(Raspberry Pi用)の新規/新規インストールに依存関係をインストールするためにモジュールを使用するAnsibleプレイブックを実行すると、エラーが発生しました。requests distパッケージを削除すると、すべてが正常に動作します。
geerlingguy 2015

私のためにも働いた。OSをwheezyからjessieにアップグレードしたので、何かが壊れている可能性があります。上記の3つの方法は、最初は機能しませんでした。ただし、方法3を使用し、次にrm -rfコマンドを使用した場合、それが機能することがわかりました。
Eamonn Kenny

これで仕事は終わりましたが、debianリポジトリからのピップを維持しています。どうもありがとう!
Stefan

23

Ubuntu 14.04では、ドキュメントに記載されいるように pipインストールブートストラップスクリプトを使用してこれを解決しまし

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

これは、開発環境に適したソリューションです。


これは問題を解決します。そのような問題がLTSバージョンでまだ開いていることは残念です。
ganesshkumar

Ubuntu 15でこの問題が発生し、問題なく動作しているようです。get-pip.pyスクリプトは、探しているパッケージはすでにあると言っていましたが、-Hフラグを指定してsudoを使用することを提案しました。
リックヘンダーソン

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ます。


4
それは絶対に良い解決策です。
Tinker Sun

8
知ってクールpurge。これでも動作するバージョンのpipはインストールされずfrom requests.compat import IncompleteRead、Python CLIで実行しようとすると同じエラーが発生しました。上記のコマンドを実行した後、実行されていたDIDの動作easy_install -U pip
MikeiLL

これは、easy_installを含まず、最初にpipを削除してもシステムに悪影響を与えない、最良のソリューションです。
マーク・タムスキー

9

これでうまくいくはずです。次の簡単な手順に従ってください。

まず、すでにインストールされているpipを削除して、エラーが発生しないようにします。

ターミナルを開きます。

タイプ: sudo apt-get remove python-pip

すでにインストールされている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をインストールします。


答えにもう少し詳細を追加できますか?
アバリゾン

承知しました。しかし、どこで混乱しましたか?
kiok46 2015

ありがとうpython-pipを削除してから、easy_installを使用しました。ピップは再び働いています。
phansen

@phansen問題ない(y)
kiok46

8

実行するだけでeasy_install -U pip問題は解決しました。


2
この非常にシンプルで有用な解決策を見つけるためだけに、さまざまなソフトウェアを適切にパージする人々のスレッドを通り抜けなければならなかったという私の驚きを表すために、古いコメントを付けました。質問があったときにすべての制限があったかわかりませんが、これはうまくいきました
mttpgn 2017年

5

あなたが古いバージョンの持っている天気をチェックしrequests、あなたに座っを~/.local/lib/python2.7/site-packages/し、それは(あなたのPythonのバージョンを反映する変更パス)ケースがある場合は、それを削除します。これで問題は解決しました。


5

ubuntuでの私のバージョンのpipは示唆しています:

  pip install --upgrade pip

4
このエラーが原因でpipが完全に失敗したため、私にはうまくいきませんでした。すべての使用法(を含むpip --version)でcannot import name IncompleteReadエラーが表示されるため、pipは悲しいことに自分自身をアップグレードできません
Abe Voelker

実際、これはUbuntu 14.04(からのブートストラップminbase)のクリーンインストールで機能します。どういうわけか、モジュールpipを参照せずに自分自身を更新することができrequestsます。
オニー

これは壊れたピップ(鶏肉または卵のジレンマ)では機能しません。
Arnie97

4

Windowsでは、これは管理プロンプトから機能しました。

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

インストール/再インストールしpython-requestspython3-requestspip3を修正しました。python3.6betaをインストールしてからpython3.6rcをインストールするのを間違えました。
noobninja 16

3

私はすべての答えを嫌いで試しましたが、それを作ることができませんでした。

これをやりました

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

その後、pipでvirtualenvをインストールしました

sudo pip install virtualenv

私が取り組んでいるvirtualenvをビルドし、パッケージを簡単にインストールしました。を使用してvirtualenvにアクセスしsource /bin/activate 、パッケージをインストールしてみます。次に例を示します。

pip install terminado

私はpython3ではなくpython2.7を使用していましたが、うまくいきました


0

ターミナルウィンドウのいずれかでpythonインタープリターが動作しているかどうかを確認します。もしそうならそれを殺して、sudo pip私にとってうまくいったことを試してください。


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


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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.