Pythonのモジュール検索PATHについてメモ。
公式ドキュメント(2.x系) : http://www.python.org/doc/ 参照
(過去リリースについても http://www.python.org/doc/versions/ から参照可能)
以下、実例。
環境:
Windows XP SP3 (Japanese), Python 2.5 (from MSI installer)
実例1:"-S"で"site"モジュールを読み込まず、PYTHONPATH環境変数も未設定にする。
> 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の先頭に挿入される。
> 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 "<stdin>", line 1, in <module> 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"が追加される。
> 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環境を特に考慮している日本語ドキュメント: