インポート対象ファイルの探索順序
インポートされたモジュールやパッケージを検索する順番。
- 実行中のファイルと同じフォルダ(カレントフォルダ)
- 環境変数「PYTHONPATH」に列挙したフォルダ
- sys.pathに登録してあるフォルダ
sys.path の動き(windows)
Python は起動後に C:\Python33\Lib\site.py ファイルを探し、ロードすることで sys.path を設定している。
site.py ファイルを編集することでも、 sys.path を変更できる。
site.py は、 -S スイッチを与えて抑制しないかぎり、Python インタプリタが実行される際に自動的に import される。
検索パスの追加・変更(windows)
ローカルでインストールされるパッケージは、 C:\Python33\Lib\site-packages\ ディレクトリに入るが、どこか任意のディレクトリにモジュールをインストールしたいときは、その任意のディレクトリを sys.path に追加しなければばらない。
パス設定ファイル .pth
すでに、パスが通っているディレクトリに●●.pthというファイルを作成して、
(拡張子で判別しているので、ファイル名自体はなんでも良い)
C:\***\***
と記述。
このファイルで指定したパスは sys.path のパスリストに追加される。
このファイルに存在しないパスを記述した場合は sys.path へは追加されない。
項目がファイルではなくディレクトリを参照しているかどうかはチェックされない。
空行と # で始まる行は読み飛ばされる。
import で始まる(そしてその後ろにスペースかタブが続く)行は実行される。
インポートしたモジュールのパスの確認
import os
print(os.__file__)
#---表示---------
'C:\\Python33\\lib\\os.py'
一時的なパスの追加・削除
上記に示した4つ以外のパスにあるディレクトリ、ファイルをインポートするにはそのディレクトリ、ファイルのあるパスを追加します。
sys.path.append(‘パス’)
という感じで追加できる。
▼追加前
import sys
sys.path
#---表示------
['', 'C:\\Python33\\lib\\site-packages\\distribute-0.6.49-py3.3.egg', 'C:\\Pytho
n33', 'C:\\windows\\system32\\python33.zip', 'C:\\Python33\\DLLs', 'C:\\Python33
\\lib', 'C:\\Python33\\lib\\site-packages']
▼追加後
import sys
sys.path.append('C:\\Python33\\todo')
sys.path
#---表示------
['', 'C:\\Python33\\lib\\site-packages\\distribute-0.6.49-py3.3.egg', 'C:\\Pytho
n33', 'C:\\windows\\system32\\python33.zip', 'C:\\Python33\\DLLs', 'C:\\Python33
\\lib', 'C:\\Python33\\lib\\site-packages', 'C:\\Python33\\todo']
これで「C:\\Python33\\todo」ディレクトリ内にあるファイル(モジュール)等をどのファイルからでも 「import ●●」 でインポートする事ができる。
▼パスを削除する場合
import sys
sys.path.remove('削除するパス')
永続的なパス設定変更
Windowsの場合、環境変数 PYTHONPATH を設定することにより変更が可能。
変更方法(windowsXPの場合)
- コントロールパネルをクリック。
- システムをクリック
- 「詳細設定」タブをクリック
- 「ユーザー環境変数」をクリック
- ユーザ環境変数 の「新規」をクリック
- 変数名に PYTHONPATH を入力し、変数値に 追加したいパスを入力する(例 c:\\Python33\\todo; )
- :入力したら、「OK」を押す。
- :コンピューターの再起動後、PYTHONPATH に設定したパスが追加される。
システム環境変数の場合
Python実行するファイルは「python.exe」。任意のディレクトリからこのプログラムを実行するにはこのディレクトリをPATHに追加しておくと便利。
- 「システム環境変数」をクリック
- 「変数」が「Path」と書かれたものがあるかどうか探し、「Path」と書かれた箇所を一度クリックして選択してから「編集」ボタンをクリックする。
- 「変数値」のところの最初から入力されている部分を消さないようにして、最後に「c:¥Python33;」を追加する。
(Pythonをインストールしたディレクトリに合わせて設定する値は変更。)
もし既存の値の最後がセミコロンで無かった場合はセミコロンを付けてから先ほどの値を入力。
システム環境変数の中で「変数」が「Path」と書かれたものが無かった場合には「新規」ボタンをクリックして新たに作成。