はい、--enable-framework
Pythonをビルドしてインストールするときに違いがあります。がない--enable-framework
場合、Pythonはデフォルトでにインストールされる従来の「unixスタイル」ビルドとしてビルドされますが、オプションを/usr/local/
使用して変更できます。 に別のパスを指定することで変更できますが、デフォルトでにインストールされるPythonをビルドします。ただし、Pythonビルドは、オペレーティングシステムによって提供される他のライブラリとフレームワークに依存します。これは正常です。なぜあなたはそれを心配していますか?--prefix=
./configure
--enable-framework
/Library/Frameworks
--enable-framework
更新:Appleが提供するシステムPythonの使用を避けるのは簡単です。たとえば、/ usr / binにあり、共有コンポーネントが/System/Library/Frameworks/Python.frameworksにあるものは、別のPython 2.7をインストールし、/を使用しないだけです。 usr / bin/python2.7。しかし、それは、他のシステムフレームワークの使用を避けるべきである、または避けることができるという意味ではありません。
とは言うものの、Pythonで使用されるOS X 10.6から10.8には、問題のあるApple提供のフレームワークが1つあります。それは、IDLEを含むPythonTkinterアプリケーションで使用されるTk8.5です。幸い、それを回避するのは非常に簡単です。Pythonと同様に、Tcl8.5およびTk8.5フレームワークの新しいサードパーティバージョンをにインストールでき/Library/Frameworks
、python.orgのバイナリインストーラーなどの一部のPythonディストリビューションがそれらを使用します。使用できる場合は、ActiveTclディストリビューションをお勧めします。詳細については、 http://www.python.org/download/mac/tcltk/を参照してください。
Distribute
また、 (またはsetuptools
)、pip
(使用する場合)、および/または使用しているPythonのインスタンスvirtualenv
ごとに個別のバージョンをインストールする必要があることに注意してください。システムPython用のApple提供のコマンドを使用するという罠にはまらないでください。easy_install
/usr/bin/
さらなる更新:さらなる改良
/S/L/F/Python.frameworkの下にあるものはすべて避けてください。私はすでにあなたが説明したようなものを試しましたが、結果のインストールはまだ/S/L/F/Python.frameworkの下にあるものに依存します
私にできることは、「unix」ビルド、「shared」ビルド、「framework」ビルドなど、独自のPythonをビルドすることを繰り返すことです。結果として得られるPythonは、のすべてから完全に独立している必要があります/System/Library/Frameworks/Python.framework
。そうでない場合は、ビルドまたはPythonの実行方法に問題があります。何がうまくいかないかを判断するには、少なくとも次のような詳細が必要になります。
/path/to/your/python -c "import sys, pprint; print(sys.version); print(sys.executable); pprint.pprint(sys.path)"
Pythonをビルドした場合は、完全なコマンドを確認する必要がconfigure
ありmake
ます。しかし、それはStackOverflowにはあまり適切ではないローカライズされたデバッグに入ります。
最後の(!)更新:フレームワークビルドで、で終わるパスを使用することに固執する場合、フレームワークと2つの補助ディレクトリのインストール「プレフィックス」の場所としてその「プレフィックス」--enable-framework=/path/to
を使用するオプション。したがって、使用した場合:configure
Library/Frameworks
./configure --enable-framework=/baz/quux/Library/Frameworks && make && make install
結果は次のようになります。
/baz
quux
Applications
Python 2.7
Build Applet.app
IDLE.app
...
Library
Frameworks
Python
Version
2.7
Headers/
Python
...
Resources/
bin
...
2to3
idle2.7
...
python
python2
python2.7
...
include/
lib/
share/
bin
2to3 -> ...bin/2to3
...
idle2.7 -> ...bin/idle2.7
...
python -> ...bin/python
...
トップレベルのbinディレクトリはやや痕跡的であり、実際には問題を混乱させるだけです。bin
フレームワークディレクトリ内の実行可能ファイルへのシンボリックリンクが含まれています。これは/usr/local/bin
、デフォルトのフレームワークビルドによってインストールされるものです。これを使用する際の問題の1つは、Distutilsがインストールしたスクリプトがデフォルトでフレームワークbin
ディレクトリにインストールされ、最上位ディレクトリにそれらのエイリアスがないことです。bin
そのため、フレームワークディレクトリをシェルの先頭に置きPATH
、トップレベルを無視することをお勧めしますbin
。
--prefix=/foo/bar
が前に追加された場合configure
、プレフィックスパスが痕跡の最上位binディレクトリのルートとして使用されます。上記の例では、その最上位bin
ディレクトリは代わりに次の場所にインストールされます。
/foo
bar
bin
2to3 -> ...bin/2to3
...
idle2.7 -> ...bin/idle2.7
...
python -> ...bin/python
...
それ以外の場合は、効果がありません。