web-dev-qa-db-ja.com

なぜPython easy_installがMacで動作しないのですか?

MacでPython 2.6。を使用しようとするとeasy_installこのメッセージが表示されます。

/usr/bin/easy_install-2.6:7: UserWarning: Module pkg_resources was already imported from /System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/pkg_resources.pyc, but /Library/Python/2.6/site-packages is being added to sys.path
  from pkg_resources import load_entry_point
/usr/bin/easy_install-2.6:7: UserWarning: Module site was already imported from /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site.pyc, but /Library/Python/2.6/site-packages is being added to sys.path
  from pkg_resources import load_entry_point
Traceback (most recent call last):
  File "/usr/bin/easy_install-2.6", line 10, in <module>
    load_entry_point('setuptools==0.6c9', 'console_scripts', 'easy_install')()
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/pkg_resources.py", line 271, in load_entry_point
    return False
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/pkg_resources.py", line 2173, in load_entry_point
    deps = []
ImportError: Entry point ('console_scripts', 'easy_install') not found

私はこれに非常に困惑しており、これを修正する方法を知りたいです。以前はこのメッセージは表示されませんでしたが、pipをインストールしてアンインストールした後、easy_installは機能しなくなりました。私はこれをどのように修正することができるのか、デフォルトのPythonまたはeasy_install設定をMacに戻すことができるのか疑問に思っていました。

59
Etan
  1. Easy_installのインストールについて/ usr/binおよび/ usr/local/binを確認し、古いスクリプトを削除します。

    Sudo rm -f /usr/bin/easy_install*
    Sudo rm -f /usr/local/bin/easy_install*
    
  2. 配布をダウンロードして実行します。

    curl -O https://svn.Apache.org/repos/asf/oodt/tools/oodtsite.publisher/trunk/distribute_setup.py
    
    Sudo python distribute_setup.py
    Sudo rm distribute_setup.py
    
  3. もう一度お試しください。例えば。:

    Sudo easy_install pip
    
153
mimoralea

最も簡単な方法は_easy_install再度作業すると distribute がインストールされます。これは distutils の改良版であり、独自のバージョンのeasy_install。インストールは簡単です:

curl -O http://python-distribute.org/distribute_setup.py
/usr/bin/python2.6 distribute_setup.py
27
zeekay

新しいオペレーティングシステム(Lion OSX)をインストールした直後に同じ問題が発生しました。インストール後pythonそして実行

Sudo easy_install ipython
ipython

次のエラーが表示されました。

Traceback (most recent call last):
  File "/usr/local/bin/ipython", line 8, in <module>
    load_entry_point('ipython==0.10.2', 'console_scripts', 'ipython')()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 318, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 2220, in load_entry_point
    raise ImportError("Entry point %r not found" % ((group,name),))
ImportError: Entry point ('console_scripts', 'ipython') not found

それから私はそれが許可の問題だったことに気づきました。 ipythonスクリプトをSudoとして実行すると動作しました。

Sudo ipython

そのため、所有権を/Library/Python/2.7/site-packages/フォルダーのrootからユーザー()に変更しました

Sudo chown -R <your_user>:wheel /Library/Python/2.7/site-packages/

所有権の変更は、Pythonを使用するアカウントがいくつかない場合にのみ使用してください。

私はそれがあなたのために働くことを望みます。

ベスト

9

Setuptoolsのインストールが壊れています。 easy_install-2.6ディレクトリの/usr/binスクリプトは、Python)インストールで実際のeasy_installモジュールをロードするラッパーであり、後者はありません。おそらくpipをアンインストールすると、 (通常は.pthディレクトリにあるsite-packagesファイルの形式で)またはパッケージ全体を削除しましたが、/usr/bin/easy_install-2.6ラッパースクリプトは削除しませんでした。

最善の方法は、 setuptools PyPIページの指示 に従って、setuptoolsを最初から再インストールすることです。

5
Martijn Pieters

私は同じ問題を抱えていました.Homebrewをインストールすると、easy_installの独自のバージョンが盲目的にインストールされ、現在実行しているものは何でもねじ込みます(homebrewが問題として認識するのに十分な時間です)。ここで解決策を見つけました pgradeed Python Homebrewを使用してSnowleopardでpipとeasy_installが動作しません

私は実際にLionにいますが、それでも私の問題を解決しました。 http://pypi.python.org/pypi/ez_setup からez_setup.pyをダウンロードするだけです。ターミナルからez_setup.pyを実行すると、レースに出かけます。

3
Jon Litwack

同様の手順を実行した後、同様のエラーメッセージが表示されました。配布モジュールをインストールしようとしたため、Mac OS Xが提供するsetuptoolsを正しくオーバーライドできなかったため、まったく機能しなかったsetuptoolsの新しいバージョンをインストールしようとしたためだと思われます。しかし、それは疑いだけです。

次のことを行って問題を解決しました。ディレクトリ/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/pythonには、名前に.OLDのファイルが4つあることがわかりました。 (Time Machineを介して)動作するときから.OLDを使用せずに、同様の名前のファイルと比較したとき、名前以外は同じであることがわかりました。そこで、次の名前を変更しました。

setuptools.OLD.1305936263.57 -> setuptools
setuptools-0.6c9-py2.6.Egg-info.OLD.1305936263.57 -> setuptools-0.6c9-py2.6.Egg-info
pkg_resources.py.OLD.1305936263.57 -> pkg_resources
site.py.OLD.1305936263.59 -> site.py

ファイルがルートによって所有されているため、コマンドラインとSudo mvを使用する必要がありました。例:Sudo mv setuptools.OLD.1305936263.57 setuptools。パスワードを入力する必要があります。

私がした他のことは、/Library/Python/2.6/site-packagesディレクトリをきれいにすることでした。 Time Machineを使用して、それを混乱前の状態に戻しました。 Time Machineがない場合、distribute、easy-install、pip、pkg_resources、setuptools、およびsiteで始まるファイルまたはフォルダーを削除すると、回復できるはずです。

それでもうまくいかない場合は、そのディレクトリから可能なモジュールをすべてアンインストールします。たとえば、pipでモジュールをインストールした場合は、pip uninstallを使用します。これを行う理由は、インストールによってusr/local/binおよびpipが削除する他の場所にファイルをコピーできるためです。

次に、残りのモジュールを削除します。フォルダーの名前を変更し(後で必要なものがある場合)、新しい空のフォルダーを作成します。

必要なモジュールを再インストールします。少し運が良ければビジネスに戻ります...

1

Martijn Pieterの答えは正しいです。

  1. http://pypi.python.org/pypi/setuptools#downloads に移動します
  2. ダウンロードsetuptools-0.6c11-py2.7.Egg
  3. ダウンロードディレクトリから次を実行します:Sudo ./setuptools-0.6c11-py2.7.Egg

完了:-)

0
Jaik Dean