Mac OSXでのPythonの場所


94

私はosx上のpythonと少し混乱しています。以前のラップトップの所有者がmacportを使用してmacpythonをインストールしたかどうかはわかりません。そして、osxには組み込みバージョンのpythonがあることを思い出しました。使っtype -a pythonてみたところ結果が返ってきました

python is /usr/bin/python
python is /usr/local/bin/python

しかし、これらの場所で両方のpythonを実行すると、私を与えます[GCC 4.2.1 (Apple Inc. build 5646)] on darwin。どちらも提供されている同じ組み込みのPython Macを参照していますか?

また、macpython oneをインストールすると、

     A MacPython 2.5 folder in your Applications folder. In here you
 find IDLE, the development environment that is a standard part of
 official Python distributions...

私はを見ましたApplications、そしてそこに記載されたものを含むMacPortフォルダーがpython2.6あります。しかし、IDLEを実行すると、上記と同じメッセージが表示されます。

うーん、少し混乱しています。どっち?

回答:


63

[GCC 4.2.1 (Apple Inc. build 5646)]Pythonのビルドに使用されたGCCのバージョンであり、Python自体のバージョンではありません。その情報は前の行にあるはずです。例えば:

# Apple-supplied Python 2.6 in OS X 10.6
$ /usr/bin/python
Python 2.6.1 (r261:67515, Jun 24 2010, 21:47:49) 
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 

# python.org Python 2.7.2 (also built with newer gcc)
$ /usr/local/bin/python
Python 2.7.2 (v2.7.2:8527427914a2, Jun 11 2011, 15:22:34) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

のアイテム/usr/binは常に、アップルがOS Xで提供するファイルであるか、リンクされている必要があります。がどこに/usr/local/bin/pythonリンクされているかを正確に確認するには:

$ ls -l /usr/local/bin/python
lrwxr-xr-x  1 root  wheel  68 Jul  5 10:05 /usr/local/bin/python@ -> ../../../Library/Frameworks/Python.framework/Versions/2.7/bin/python

この場合、これはpython.orgがインストールされたPythonインスタンスの典型的なものであるか、ソースから構築されたものである可能性があります。


53

Mac OS Xでは、のPythonフレームワークにあり/System/Library/Frameworks/Python.framework/Resourcesます。

フルパスは:

/System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python

ところで、特定のバイナリがどこにあるかを見つけるのは簡単です。Pythonバイナリwhich Pythonのパスが表示されます(これは、上記で投稿したものとおそらく同じです)。


ええ、私はそれを知っていました。それだけで混乱しています-/ usr / local / bin /でインタープリターを実行し、sys.executableを出力しました。/ usr / bin / pythonと書いてあります。しかし、私はドキュメントを読んで、アップルが提供したものが/ usr / bin /にあり、macpythonの「Python実行可能ファイルへのシンボリックリンクが/ usr / local / bin /に置かれている」と言っています。
13:13にgoh

まあ、それは理にかなっています:python実行可能ファイルを自分でコンパイルして、たとえば/ Users / John / Downloads /に移動すると、/ Users / John / Downloads / pythonに配置されていることがわかります。同じシステム上で複数の実行可能ファイルを隣同士で実行できます。AFAIKはPython.frameworkの1つが主なものですので、それに依存する必要があります。
elslooo '25

28
実際、Mac OS Xのアップル提供のPythonはにあり/System/Library/Frameworks/Python.frameworkます。の/Library/Frameworks/Python.frameworkすべてはサードパーティのインストール、通常はpython.org(または他のディストリビューター)インストーラーから、またはソースからPythonのデフォルトフレームワークビルドを実行した場合に発生します。
Ned Deily

1
出力を実行/System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7するとps aux表示されるの/System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Pythonはなぜですか?シンボリックリンクであることがわかりませんか?(AskDifferentでこの質問をした)
Zitrax 14

@ティムありがとう。/Library/Frameworks/Python.framework/Versions/に移動すると、2.7(インストールしたもの)ではなく、「現在」というエイリアスファイルが表示されます。このファイルをクリックすると、「操作「Current」の元のアイテムが見つからないため、競争できません。」
パイダーマン、2015

53

私はそれを見つける最も簡単な方法を見つけました、あなたは使うことができます

which python

次のように表示されます。

/usr/bin/python


3
これは、Pythonのどのディストリビューション(誰が作ったか)には答えません。
Scott Prive

42

これは、PythonとMac に関するすべての問題解決します

あなたがMacを持っていて、私たちのほとんどのようにpython3をインストールしたなら:)(brew install-ofcを使って)

ファイルは次の場所にあります:

/usr/local/Cellar/python/3.6.4_4/bin/python3

どうして知っていますか?実行:

which python3

あなたは得るべきです:

/usr/local/bin/python3

これはシンボリックリンクですが、どうやって知るのですか?実行:

ls -al /usr/local/bin/python3 

あなたが得るでしょう:

/usr/local/bin/python3 -> /usr/local/Cellar/python/3.6.4_4/bin/python3

つまり、あなたの

/usr/local/bin/python3 

実際に指しているのは:

/usr/local/Cellar/python/3.6.4_4/bin/python3

何らかの理由であなたの

/usr/local/bin/python3 

私たちの場合、あなたが望む場所を指していません:

/usr/local/Cellar/python/3.6.4_4/bin/python3

それをバックアップするだけです:

cp /usr/local/bin/python3{,.orig} 

そして実行します:

rm -rf /usr/local/bin/python3

新しいシンボリックリンクを作成します。

ln -s /usr/local/Cellar/python/3.6.4_4/bin/python3 /usr/local/bin/python3 

そして今あなた

/usr/local/bin/python3

指している

/usr/local/Cellar/python/3.6.4_4/bin/python3 

次のコマンドを実行して確認してください。

ls -al /usr/local/bin/python3

1
最後に....ありがとうございました!!!!! 仮想環境でこの問題が発生していました。ソリューションも機能します。正しいpythonの場所を使用する必要がある
Paul Jurczyk

6

ハイシエラに

which python

デフォルトのpythonが表示されますが、python.orgから最新バージョンをダウンロードしてインストールした場合は、次の方法で見つけることができます。

which python3.6

私のマシンではこれが示しています

/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6

これは、Pythonのどのディストリビューション(誰が作ったか)には答えません。
Scott Prive


3

私はいくつかの同様のディスカッションをチェックし、すべてのpython2 / python3ビルドを見つけるための最良の方法を見つけました:

which -a python python3

2

ここで見つけました:/ライブラリ/Frameworks/Python.framework/Versions/3.6/bin


1

which python3 単に通訳が落ち着く経路をもたらすだけです。


0

これをインタラクティブターミナルで実行します

import os
os.path

pythonがインストールされているフォルダが表示されます


0

.pyファイルで次のコードを実行します。

import sys

print(sys.version)
print(sys.executable)

-1

私はlinux / macosで物事を見つけるための料理レシピを持っています

最初にロケートデータベースを更新し、次に

locate WHATiWANTtoSEARCH | less

/ findを実行して、探しているものを見つけます。

macosでlocate dbを更新するには、次のようにします:

sudo /usr/libexec/locate.updatedb

時々時間がかかります。お役に立てれば :)

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