69

Mac OS X 10.8(Mountain Lion)にアップグレードし、電話をかけようとすると次のエラーが発生するようになりました$ pip

Traceback (most recent call last):
  File "/usr/local/bin/pip", line 5, in <module>
    from pkg_resources import load_entry_point
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 2603, in <module>
    working_set.require(__requires__)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 666, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 565, in resolve
    raise DistributionNotFound(req)  # XXX put more info here
pkg_resources.DistributionNotFound: pip==1.1

更新:インストール手順を再度実行して(http://www.pip-installer.org/en/latest/installing.html#using-the-installer andを使用してeasy_install)再インストールしようとしましたが、機能しませんでしたが、同じになりましたエラー。

次のことを試してみました。呼び出し$ sudo pipて、上記のエラーが消えます。奇妙なことに、上記のエラーメッセージで見つからなかったディレクトリが/ System / Library / ...を指しているのに対し、Pythonのインストールは/ Library / Frameworks /で(新しい?)見つかります。

$ which python
/Library/Frameworks/Python.framework/Versions/Current/bin/python

sudoを取り除く方法はありますか?

4

10 に答える 10

135

を最新バージョンeasy_installに更新するために使用します。pip

sudo easy_install -U pip

また、が最後にXCodeインストールされている(バージョン4.4)ことを確認してくださいCommand Line Tools

于 2012-07-28T20:28:14.743 に答える
10

これは私のために働く

rm -f /usr/local/bin/easy_install
brew reinstall python
pip install --upgrade setuptools
pip install --upgrade pip
于 2014-12-16T06:02:30.927 に答える
5

sudo pipどちらも機能しなかったことを除いて、同様のエラーが発生しました。私はpythonの「brew」インストール(/ usr / local / binにシンボリックリンクされています)を使用していますが、問題は、pipファイルとeasy_installファイルのshebangsがの#!/usr/bin/python代わりにハードコードされていることで#!/usr/local/bin/pythonあり、システムpythonを使用していたことがわかりましたbrewバージョンの代わりにバージョン。

乾杯、トム

于 2013-03-02T03:49:03.713 に答える
3

私は実際に提案されたことを行うことができませんでした。代わりに実行する必要がありました:

xcode-select --install

その後、LDAPモジュールをインストールすることができました。

于 2013-11-13T19:47:19.930 に答える
2

easy_installの再インストールから新しいPythonバージョンのインストールまで、ここですべての答えを試しましたが、何も機能しませんでした。

私がしたことは、/ Library / Frameworksフォルダーに新しいPythonインストールをインストールし、/ usr / local / binからそのインストールにシンボリックリンクすることでした(何らかの理由で、私のシステムには/Library/Frameworks/Python.frameworkから/へのシンボリックリンクがありました。 System / Frameworks / Python.framework)。私のアイデアは、/ usr/bin内のシステムコマンドで使用される/System/ Library / Frameworksファイルを保持し、/ usr / local/binが/Library/Frameworks内の別の「ユーザーランド」インストールを指すようにすることでした。それをするために:

  • /System/Library/Framework/Python.frameworkの名前を_OLD_Python.frameworkに変更します

  • / usr / local / bin(sudo rm / usr / local / bin / python *を使用)および/ usr / local / bin / pip *内のすべてのpythonファイルを削除します(ただし、/ usr / binには触れないでください)。

  • 公式サイト(http://www.python.org/getit/)からPythonを再インストールします==>これにより、/ System / Library/Frameworkではなく/Library/FrameworkにPythonが再インストールされます

  • 次に、Applications / Python / Update Shell Profile.commandコマンドを起動して、パスがそのコマンドを使用していることを確認します

  • 次に、/ usr / local/binにシンボリックリンクを再作成します。

    ln -s ../../Library/Frameworks/Python.framework/Versions/2.7/bin/python python ..

  • 最後に、_OLD_Python.frameworkの名前をPython.frameworkに戻します(これは/ usr / bin / pythonが指すパスであるため)

「どのPython」と入力すると、/ System/Libraryではなく/Library/...を指す必要があります。そこから、easy_installとpipを適切に再インストールできるはずです。

于 2013-09-25T19:34:09.387 に答える
1

所有権を変更するのではなく、単に権限を変更することができます。

$ sudo chmod -R o + rX /Library/Python/2.7/site.packages

于 2013-05-23T21:46:01.753 に答える
1

マーベリックスで、私はそれを見つけました

ls -l `which python`
/usr/local/bin/python -> ../../../Library/Frameworks/Python.framework/Versions/2.7/bin/python

ピップが示している間

ls -l `which pip`
/usr/local/bin/pip

古い名前の名前を変更pipし、適切なpipバイナリへのシンボリックリンクを作成しました。これですべてが順調になりました。これはおそらく最善の解決策ではありませんが、機能します。

于 2013-11-04T04:10:16.630 に答える
1

pythonをhomebrewで再インストールすることでこれを修正しました: brew install python

于 2014-06-03T21:09:11.673 に答える
0

Pythonフォルダーのアクセス許可を(rootからユーザーに)変更したところ、すべてが機能するようになりました。

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

複数のユーザーがいるマシンにはお勧めしません。

于 2012-07-30T18:22:34.210 に答える
0

bonjour-py私は通常、彼らの中で参照しているいくつかのプロジェクトで同じ問題を抱えていrequirements.txtましたが、現時点でそれを追跡する方法や方法がわかりませんでした。

そして、誰かが私にそのピップツールを教えてくれました。それは実際にあなたが持っているものを特定し、それらを更新したい場合に優れた代替手段です。bonjour-pyそしてボーナスとして、それはエラーをうまく無視しました。

于 2013-10-14T16:25:32.550 に答える