MacPorts をインストールした後、Python の PATH を正しく設定する

MacPorts をインストールした後、Python の PATH を正しく設定する

MacPorts でインストールしたばかりの Python ライブラリ (PIL、psycopg2) をインポートできません。これらのフォーラムを調べ、この問題を解決するためPATHに変数を調整しようとしました~/.bash_profileが、うまくいきませんでした。

PIL と psycopg2 の場所を に追加しましたPATH。ターミナルがで MacPorts によってインストールされたものではなく、
の python バージョンを使用していることはわかっています。/usr/local/bin/opt/local/bin

ターミナルで python を使用するときに、PIL と psycopg2 が sys.path 上にあることを確認するには、MacPorts バージョンの Python を使用する必要がありますか? MacPorts バージョンの Python に切り替える必要がありますか? それとも、さらに問題が発生しますか?

参考になればと思い、さらに事実を記します。

PIlとpsycopg2は、/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages

which python戻り値/usr/bin/python

$ echo $PATH戻り値(読みやすくするために各パスを分離しました):

:/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/
:/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages
:/opt/local/bin
:/opt/local/sbin
:/usr/local/git/bin
:/usr/bin
:/bin
:/usr/sbin
:/sbin
:/usr/local/bin
:/usr/local/git/bin
:/usr/X11/bin
:/opt/local/bin

Pythonでは>>> sys.path以下を返します:

/Library/Frameworks/SQLite3.framework/Versions/3/Python
/Library/Python/2.6/site-packages/numpy-override
/Library/Frameworks/GDAL.framework/Versions/1.7/Python/site-packages
/Library/Frameworks/cairo.framework/Versions/1/Python
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python26.zip
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-darwin
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac/lib-scriptpackages
 /System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-tk
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-old
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload
/Library/Python/2.6/site-packages
/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/PyObjC
/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/wx-2.8-mac-unicode

上記のいずれかが愚かだったり、考えが不十分だったりする場合は、批判やコメントをお待ちしています。私はこのすべてについて初心者です。よろしくお願いします!

MacBook ProでOSX 10.6.5を実行し、ターミナルからpython 2.6.1を呼び出す

答え1

Python をインストールした後、「notes」コマンドを使用します (python26 をインストールしたバージョンに変更します)。

$ port notes python26

インストール後の推奨事項にはいくつかのバリエーションがあります。

python26 has the following notes:
  To fully complete your installation and make python 2.6 the default,  please
  run:
    sudo port install python_select
    sudo port select python python26

をインストールしてpython_selectpython26デフォルトのPythonとして選択する必要があります。その後、MacPortsを使用してPILとpyscopg2をインストールした場合(つまり、 などport install py26-psycopg2 py26-pil)、指定する必要はありません。何でもにあります。また、にディレクトリPYTHONPATHを追加する必要はありません。これを行うと、は を返すはずです。 で MacPorts によってインストールされた Python ポートは、すでにMacPorts Python の にあります。これまでそれらを見つけられなかったのは、MacPorts Python パッケージを認識しない System Python (つまり ) を使用していたためです。/opt/local/Library/Frameworks/…PATHwhich python/opt/local/bin/python/opt/local/Library/Frameworks/Python.frameworksys.path/usr/bin/python

答え2

考える私は自分の質問の答えを見つけました。~/.bash_profileファイルを編集して、

export PYTHONPATH=

そして、既存のパスをすべて追加しましたsys.path:

export PYTHONPATH=/Library/Frameworks/SQLite3.framework/Versions/3/Python:/Library/Python/2.6/site-packages/numpy-override:/Library/Frameworks/GDAL.framework/Versions/1.7/Python/site-packages:/Library/Frameworks/cairo.framework/Versions/1/Python:/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python26.zip:/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6:/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-darwin:/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac:/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac/lib-scriptpackages:/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python:/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-tk:/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-old:/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload:/Library/Python/2.6/site-packages:/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/PyObjC:/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/wx-2.8-mac-unicode:/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/:/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages:

そして、MacPorts がインストールしたディレクトリへのパスを追加しました:

/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/:/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages:

sys.path を印刷すると、MacPorts インストール ディレクトリへのパスが含まれるようになりました。

/Library/Frameworks/SQLite3.framework/Versions/3/Python
/Library/Python/2.6/site-packages/numpy-override
/Library/Frameworks/GDAL.framework/Versions/1.7/Python/site-packages
/Library/Frameworks/cairo.framework/Versions/1/Python
/Library/Frameworks/SQLite3.framework/Versions/3/Python
/Library/Python/2.6/site-packages/numpy-override
/Library/Frameworks/GDAL.framework/Versions/1.7/Python/site-packages
/Library/Frameworks/cairo.framework/Versions/1/Python
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python26.zip
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-darwin
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac/lib-scriptpackages
/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-tk
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-old
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload
/Library/Python/2.6/site-packages
/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/PyObjC
/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/wx-2.8-mac-unicode
/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6
/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages

>>> import PIL

そして

>>> import psycopg2

問題なく動作します。

関連情報