#navi_header|Python| Pythonのモジュール検索PATHについてメモ。 - 基本はsys.pathから。 -- 末尾に追加したい場合は - sys.pathを構成する外部要素: -- PYTHONPATH環境変数 -- "site"モジュールと"-S"コマンドライン引数 -- "site-packages" ディレクトリ直下の".pth"ファイル 公式ドキュメント(2.x系) : http://www.python.org/doc/ 参照 (過去リリースについても http://www.python.org/doc/versions/ から参照可能) - "Tutorial" -> "6. Modules" -> "6.1.x The Module Search Path" -- モジュール検索PATHの基本かつ公式かつ一次ドキュメント - "Installing Python Modules" -> "4 Custom Installation" -> "4.1 Modifying Python's Search Path" -- CGI環境などの都合でモジュール検索PATHをカスタマイズしたい場合の基本プラクティス - "Library Reference" -> "Python Runtime Service" -> "site" -- "site-packages" ディレクトリ以下をsys.pathに追加する"site"モジュールの解説 以下、実例。 環境: Windows XP SP3 (Japanese), Python 2.5 (from MSI installer) 実例1:"-S"で"site"モジュールを読み込まず、PYTHONPATH環境変数も未設定にする。 #pre||> > set PYTHONPATH= > C:\Python25\python.exe -S Python 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit (Intel)] on win32 >>> import sys >>> sys.path [ '', 'C:\\WINDOWS\\system32\\python25.zip', 'C:\\Python25\\DLLs', 'C:\\Python25\\lib', 'C:\\Python25\\lib\\plat-win', 'C:\\Python25\\lib\\lib-tk', 'C:\\Python25' ] ||< 実例2:PYTHONPATH環境変数を設定する→デフォルトのsys.pathの先頭に挿入される。 #pre||> > set PYTHONPATH=C:\path1;C:\path2 > C:\Python25\python.exe -S Python 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit (Intel)] on win32 >>> sys.path Traceback (most recent call last): File "", line 1, in NameError: name 'sys' is not defined >>> import sys >>> sys.path ['', 'C:\\path1', 'C:\\path2', 'C:\\WINDOWS\\system32\\python25.zip', 'C:\\Python25\\DLLs', 'C:\\Python25\\lib', 'C:\\Python25\\lib\\plat-win', 'C:\\Python25\\lib\\lib-tk', 'C:\\Python25' ] ||< 実例3:"-S"無し=通常起動時は"site-packages"が追加される。 #pre||> > set PYTHONPATH= > C:\Python25\python.exe Python 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> sys.path [ '', 'C:\\WINDOWS\\system32\\python25.zip', 'C:\\Python25\\DLLs', 'C:\\Python25\\lib', 'C:\\Python25\\lib\\plat-win', 'C:\\Python25\\lib\\lib-tk', 'C:\\Python25', 'C:\\Python25\\lib\\site-packages' ## <<<< added by site.py ] ||< "site-packages"ディレクトリ直下の".pth"ファイルの取り扱いについては、"site"モジュールの公式ドキュメントあるいはシステムにインストールされているsite.pyのソースコードを参照のこと。 PYTHONPATH環境変数と "site-packages"ディレクトリ直下の".pth"ファイルは無関係。".pth"ファイルは"site"モジュールが処理するファイル。PYTHONPATHはPython処理系(実行ファイル本体)が処理する環境変数。実例で示したように、それぞれ独立してsys.pathにPATHを追加している。 CGI環境を特に考慮している日本語ドキュメント: - 「さくらのレンタルサーバ」で Python 外部モジュールを使う 改訂版 -- http://www.emptypage.jp/notes/pymods-on-sakura.html #navi_footer|Python|