0

「どのPython」を実行すると、「/usr/local/bin/python」と表示されます。しかし、「ファインダー」を介してそこに行くと、そこには何もありません。ファインダーで /Library/Python を確認できます。Library/Python をクリックすると、2.3、2.5、2.6、2.7 が表示されます。

デフォルトの Python は現在 2.7 で、--version で確認できます。しかし、/site-packages しかありません。これはどのように可能ですか?OSに付属していたものなのか、誰かが後でインストールしたものなのかはわかりません。私はとても混乱しています。

OS X 10.8.4

4

4 に答える 4

3

あなたが見つけたのは、Python バイナリへの単なるシンボリック リンクです。

ls -l /usr/local/bin/python

これにより、この simlink が指している場所が表示されます。たとえば、次のようになります(行末を参照):

lrwxr-xr-x  1 yaser  admin  33 Mar 30 15:59 /usr/local/bin/python -> ../Cellar/python/2.7.3/bin/python

通常、次の場所にあります。

/Library/Frameworks/Python.framework/Versions/2.7/
于 2013-08-27T22:26:19.243 に答える
3

まず、/usr/local/bin/python はApple 提供の Python ではありません。それは常に /usr/bin/python にあります。

2 つ目は、/Library/Python/XY にはサイト パッケージ以外は何も含まれていないことです。特に、システム上の PythonX.Y のすべてのフレームワーク ビルドで共有したいパッケージを配置する場所です。(/usr/local/lib/pythonX.Y もあります。これには、すべてのビルド、フレームワーク、および非フレームワークで共有するパッケージ用のサイト パッケージもあります。)

Apple が提供する実際の Python 自体は、/System/Library/Frameworks/Python.framework にあります。

ほとんどのサードパーティ フレームワーク ビルドは、/Library/Frameworks/Python.framework にあります。ただし、Homebrew、MacPorts、および Fink はすべて別の場所にインストールされます。たとえば、Homebrew は /usr/local/Cellar/python/XYZ/Frameworks/Python.framework にインストールされます。

非フレームワーク ビルドは代わりに /usr/local/share/pythonX.Y のような場所に入りますが、Homebrew、MacPorts、および Fink は別の場所にインストールされます。

最後に、多くのインストールでは、より一般的な場所へのシンボリック リンク (または、場合によってはラッパー スクリプト) が作成されます。特に、 /usr/local/bin/python は、上記で説明した適切な Python.framework 内の Versions/XY/bin/python へのシンボリック リンクである可能性があります。


これが理解できないほど混乱している場合、最も簡単な方法は、インストールした追加の Python2.7 をアンインストールし、Apple の. 一部の人々が別の Python 2.7 を使用する正当な理由があることは確かですが (上記のリンク先のブログ投稿にその多くが示されています)、そのような理由がない場合、自分自身で物事を難しくする必要はありません。

Homebrew を使用しているように見えるので、邪魔にならないようにすることで問題が発生するかどうかを非破壊的にテストすることもできます:brew unlink python通常の PATH から Homebrew Python のすべての痕跡を削除しますが、実際のファイルは残します。次に、元に戻したい場合は、brew link python; あなたがそれなしでもっと幸せなら、brew uninstall python.

複数の PythonX.Y インストールが必要だと考える一般的な理由の多くは、virtualenv.


MacPorts や Fink を使用している場合、それらは標準的なシステムの場所に近づかないように明示的に設計されています。したがって、すべてが MacPorts/Fink ルートの下のどこかにインストールされます。デフォルトはそれぞれ/opt/localまたは/swです。(私は と仮定し/opt/localます。) つまり、フレームワークのビルドは、 などへの/opt/local/Library/Frameworksシンボリック リンクを使用し/opt/local/bin/opt/local/lib、 のような場所に移動します。サイト パッケージは/opt/local/Library/Python/X.Yおよび/またはにあり/opt/local/lib/pythonX.Yます。

したがって、他の Python インストールと競合する可能性はありません…もちろん、/opt/local/bin/usr/local/binがおそらく両方とも PATH にあることを除いて、Apple または Python.org のインストールをpip意味する可能性はありますが、MacPorts のインストールを意味します…< /p> /usr/local/bin/pipipython/opt/local/bin/ipython

于 2013-08-27T22:37:16.120 に答える