モジュールパスを設定する方法は大きく3つある。
PYTHONPATH環境変数を使う方法
set PYTHONPATH=c:\temp\hoge export PYTHONPATH=/user/local/hoge
など
プログラム内で動的に設定する
sys.path
sys.path は「検索パス」そのものです。 import 文が実行された時、 Python は sys.path リストの先頭から順番に該当するモジュール・パッケージを探し出します。この sys.path は単なるリストなのでプログラム中で動的に変更できます。また、追加するだけでなく削除することもできます。
他の方法は Python インタプリタ起動時における sys.path の初期化処理を変更するものです。
サンプル
http://www.emptypage.jp/notes/pymods-on-sakura.html
#!/usr/bin/env python import sys sys.path.append('/home/foo/lib/python') import spam
.pth ファイルを使う
.pthについて
.pth という拡張子のファイルを検索パスに入れておくことで、 sys.path の末尾に検索パスを追加しておくことができます。
.pth ファイルは検索パスに含まれていれば問題なく動作はしますが、推奨される置き場所は site-package 下です。自作およびサードパーティ製モジュール・パッケージの推奨置き場と同じ場所です。
ファイル名は拡張子が .pth であれば何でもかまいませんが、読み込ませたい対象のモジュール名との関連が想像できる名前にしておくとよいでしょう。
このファイルには1行に一つずつ、追加したい検索パスを記述します。パスは絶対パスでも相対パスでもかまいません。相対パスを記述した際、基準となるパスは .pth のあるディレクトリになります。
.pth ファイルで追加された検索パスの中にある .pth ファイルも処理の対象となります。
.pth ファイルを読み込んで処理しているのは site モジュールです。このモジュールは通常 Python インタプリタの初期化中に読み込まれるため通常は問題になりません。しかしインタプリタが -S オプション付で呼び出された時には site パッケージの自動インポートが無効となります。結果、 .pth ファイルは読み込まれないこととなります。
インポート可能なモジュールを確認する
>>> import sys >>> sys.modules {'copy_reg': <module 'copy_reg' from 'C:\python26\lib\copy_reg.pyc'>, 'sre_compi le': <module 'sre_compile' from 'C:\python26\lib\sre_compile.pyc'>, 'encodings.c p932': <module 'encodings.cp932' from 'C:\python26\lib\encodings\cp932.pyc'>, # 略 }
[カテゴリ: プログラミング言語 > Python]
[通知用URL]
Tweet
最終更新時間:2013年12月09日 22時10分15秒