pythonのパスについて質問させて下さい。環境はOSX Leopardです。


バンドルされていたpython2.5.1を使っていたのですが、幾つかの理由から
portsでインストールしたpython2.5.4(以下python@ports)を使いたい状況です。

ところが今までにeasy_installでインストール済みのライブラリが、python@portsからインポートできません。
sys.pathを見たところ、python@ports実行時はライブラリがインストールされている
/Library/Python/2.5/site-packages以下のeggファイル群へのパスが通っていない事を確認しました。

そこで、このライブラリを自動的にパスに追加する方法を教えて下さい。
easy_install.pthをロードすれば良いと考えているのですが、上手く情報を探せませんでした。

なお手動で以下を行うと、期待した挙動を示します。
import site; site.addsitedir('/Library/Python/2.5/site-packages')

回答の条件
  • 1人3回まで
  • 登録:2009/10/05 21:27:13
  • 終了:2009/10/07 09:44:49

ベストアンサー

id:TRTr No.1

TRTr回答回数52ベストアンサー獲得回数132009/10/07 08:00:30

ポイント100pt

スクリプトに毎回書かずにパスの追加を実行するということでよければ、

site.pyを作成し、パスの通っているディレクトリに配置し、

その中でパスを追加する、、、ということではないのでしょうか。

自動とおっしゃられる意味が良くわかりませんでした。


site.pyはpython動作時に毎回参照されます。

pythonのドキュメント

http://www.python.jp/doc/pdf/release/inst.pdf (PDF)

作成するsite.pyファイルの例(例のところだけを参照してください)

http://d.hatena.ne.jp/chrono-meter/20090228/p1

id:taichino0730

TRTr 様

ご回答ありがとうございます。

この内容がまさに知りたい事でした!

site.pyが自動的にロードされる事を知らなかったので、

何かフックのような仕組みがあるはずと思い質問させて頂きました。

僕の環境の場合、site.pyが既に存在していたので、それを修正する事で期待していた

挙動を得る事が出来ました。また提示頂いたpdfファイルに記述されていたのですが、

環境変数のPYTHONHOMEを設定する事でも同様の挙動が得られました。

pythonの起動時の仕組みについても勉強になりました。ありがとうございました。

2009/10/07 09:44:28

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません