ピップが壊れました。DistributionNotFoundエラーを修正する方法?


146

pipを使おうとすると、エラーが発生します。例:

$ sudo pip install gevent-websocket

Traceback (most recent call last):  
File "/usr/local/bin/pip", line 5, in <module>
from pkg_resources import load_entry_point
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2675, in <module>
parse_requirements(__requires__), Environment()
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 552, in resolve
raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: pip==0.8.1

の値をpip == 0.8.2 ..に変更したくなりますが、インストールを「ハッキング」した結果に対処したくありません... python 2.7を実行しており、pipはバージョン0.8.2です。


ここに痛みがあればたくさん。単純な一般的な解決策は、https://bootstrap.pypa.io/get-pip.pyからインストールされたpipをダウンロードして、そのファイルを実行することです(pythonを使用)。その他の修正はシステムに非常に依存しており、一般に厄介であり、以下の提案はしばしば機能しません(システムの2つの異なる子供での私の経験に基づく)
GregD

回答:


253

私のMacBookでこの問題を見つけました。理由は、@ Stephanが言ったように、easy_install pipのインストールに使用していて、両方のpyパッケージ管理ツールの混合がpkg_resources.DistributionNotFound問題の原因となったためです。解決策は次のとおりです。

easy_install --upgrade pip

注意:上記のツールのいずれかを使用して、Pyパッケージを管理してください。


55
これは私にエラーを与えるだけです:pkg_resources.DistributionNotFound: distribute==0.6.36
Timmmm

2
Mac OS X 10.9でも動作します。ありがとう!
アントンバベンコ2013年

2
a)sudo easy_install --upgrade pipを実行する必要があり、b)pipを使用するとwheelに関するエラーが発生する場合があります。この時、そのポイントルックでstackoverflow.com/questions/20905350/...
mchicago

@PiotrDobrogost私は一種同意の-あなたがリンクされている記事は、virtualenvのを使用してについてですそうでなければ、アプリケーション間のbazillionパッケージと性能との衝突を持って発生する可能性があります-このinstacnceでは、我々はしたい virtualenvのを使用します。ただし、virtualenvをインストールするには、全員にグローバルにインストールする必要があるため、sudo easyinstallを使用します。virtualenvインストール用。これにより、virtualenvを実際に機能させることができます。手動で(したがって、維持するのが難しい)インストールを行わずにvirtual envをインストールする方法は他にもあります。
mchicago 2014

1
.. 'sudo easy_install3 --upgrade pip'ができました
pavan

31

/ usr / local / bin / pipの0.8.2で0.8.1を置き換えました。

__requires__ = 'pip==0.8.2'
import sys
from pkg_resources import load_entry_point

if __name__ == '__main__':
    sys.exit(
        load_entry_point('pip==0.8.2', 'console_scripts', 'pip')()
    )

easy_installを使用してpipをインストールしたため、おそらくこの問題が発生しました。これが今のやり方だと思います。

$ sudo apt-get install python-pip python-dev build-essential 
$ sudo pip install --upgrade pip 
$ sudo pip install --upgrade virtualenv

13
私は常に、OSパッケージマネージャーを使用して純粋なPythonパッケージをインストールしないように努めています。同じことを行うことをお勧めします。Ubuntu / Debianはかつてsetuptoolsパッケージを破り、人々はpipを使用してパッケージをアンインストールできなかったため(変更により)、いくつかの問題を引き起こしました。
Hugo Tavares

aptやyumを使用するだけでは十分とは言えません。このページの戦略はローカルでの開発には適していますが、展開ではこれを行わないでください。
ケン

ここでも同じですが、Macで1.3.1にアップグレードすると、pipは自殺しましたが、pip自体はまだ1.2.1であると述べていました...
Anthony Liekens '15

@PiotrDobrogostは上記のコメントを参照してください-virtualenvを機能させるために、このインスタンスで必要です。
mchicago 2014

27

自作を使用していたときにこの問題が発生しました。これは、問題#26900の解決策です

python -m pip install --upgrade --force pip

--userオプションを使用する場合と使用しない場合(後者ではsudoが必要)の両方を試してみると役立つ場合があります。
Ray

11

get-pipスクリプトを使用して再インストールしてみます。

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

これはpip Githubページから供給され、私のために働いた。


7

CentOSを使用している場合は、YUMパッケージ「python-setuptools」がインストールされていることを確認してください

yum install python-setuptools

私のために修正しました。


6

多くの場合、問題の根本はbin(Linux)またはScripts(Windows)サブディレクトリにある古いスクリプトです。自分が遭遇した問題を例に説明します。

virtualenvバージョン1.10をユーザーサイトパッケージにインストールしました(システムサイトパッケージではなくユーザーサイトパッケージにあるという事実はここでは関係ありません)

pdobrogost@host:~$ which virtualenv
/home/users/pdobrogost/.local/bin/virtualenv
pdobrogost@host:~$ virtualenv --version
1.10

バージョン1.11にアップグレードした後、次のエラーが発生しました。

pdobrogost@host:~$ virtualenv --version  
Traceback (most recent call last):   
  File "/home/users/pdobrogost/.local/bin/virtualenv", line 5, in <module>
    from pkg_resources import load_entry_point   
File "build/bdist.linux-x86_64/egg/pkg_resources.py", line 2701, in <module>
    return self.__dep_map   
File "build/bdist.linux-x86_64/egg/pkg_resources.py", line 572, in resolve
    if insert: 
pkg_resources.DistributionNotFound: virtualenv==1.10

/home/users/pdobrogost/.local/bin/virtualenvエラーメッセージに記載されているファイルは、次のようになっています。

#!/opt/python/2.7.5/bin/python2.7
# EASY-INSTALL-ENTRY-SCRIPT: 'virtualenv==1.10','console_scripts','virtualenv'
__requires__ = 'virtualenv==1.10'
import sys
from pkg_resources import load_entry_point

if __name__ == '__main__':
    sys.exit(
        load_entry_point('virtualenv==1.10', 'console_scripts', 'virtualenv')()
    ) 

そこでは、virtualenvスクリプトは更新されておらず、以前にインストールされたバージョン1.10のvirtualenvがまだ必要であることがわかります。
今、このようにvirtualenvを再インストールします

pdobrogost@host:~$ pip install --user --upgrade virtualenv
Downloading/unpacking virtualenv from https://pypi.python.org/packages/py27/v/virtualenv/virtualenv-1.11.1-py27-none-any.whl#md5=265770b61de41d34d2e9fdfddcdf034c
  Using download cache from /home/users/pdobrogost/.pip_download_cache/https%3A%2F%2Fpypi.python.org%2Fpackages%2Fpy27%2Fv%2Fvirtualenv%2Fvirtualenv-1.11.1-py27-none-any.whl
Installing collected packages: virtualenv
Successfully installed virtualenv
Cleaning up...

pip install --user --upgrade --force-reinstall virtualenvスクリプト/home/users/pdobrogost/.local/bin/virtualenvは変更されないままであるため、(どちらも)役に立ちません。

これを修正できる唯一の方法は、virtualenv *スクリプトを手動で/home/users/pdobrogost/.local/bin/フォルダーから削除し、virtualenvを再度インストールすることでした。この後、新しく生成されたスクリプトは、パッケージの適切なバージョンを参照します。

pdobrogost@host:~$ virtualenv --version
1.11

6

私はこれを次のように解決することができました:

$ brew update
$ brew doctor
$ brew uninstall python
$ brew install python --build-from-source    # took ~5 mins
$ python --version                           # => Python 2.7.9
$ pip install --upgrade pip

次のものを使用して実行しています(2015年1月2日現在)。

OS X Yosemite
Version 10.10.1

$ brew -v
Homebrew 0.9.5

$ python --version
Python 2.7.9

$ ipython --version
2.2.0

$ pip --version
pip 6.0.3 from /usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-6.0.3-py2.7.egg (python 2.7)

$ which pip
/usr/local/bin/pip

5

OSxでも同様の問題に直面していました。私のスタックトレースは言っていました

raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: setuptools>=11.3

それから私は次のことをしました

sudo pip install --upgrade setuptools

これで問題は解決しました。誰かがこれが役立つことを願っています。


1
これは、Windows 10上で、私の問題を修正
マーク・アレン

1
これにより、CentOS 6での問題が修正されました
Dan Phillimore 2017年

2

Mac OS X(MBP)では、以下(ここにある別の回答から引用)が私の問題を解決しました:

C02L257NDV33:~ jjohnson$ brew install pip
Error: No available formula for pip
Homebrew provides pip via: `brew install python`. However you will then
have two Pythons installed on your Mac, so alternatively you can:
    sudo easy_install pip
C02L257NDV33:~ jjohnson$ sudo easy_install pip

明らかに、ここでの根本的な原因は、Python(私の場合はHomebrew)をインストールするための2番目の方法です。うまくいけば、pipスクリプトの責任者はこの問題を修正できます。最初にStack Overflowで報告されてから2年経過しているためです。


1

~/.pydistutils.cfg筆記を覚えていない奇妙な方法でpython / pipをインストールしたため、この問題が発生しました。それを削除し、再インストールしました(を使用pybrew)。すべて問題ありませんでした。


1

私の場合(samの問題ですが、他のパッケージ)、バージョンの依存関係はありませんでした。pip uninstallとpip insstallのシーケンスが役立ちました。

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