Pythonでアプリケーションを開発を進めていくと、共通モジュールが多くできてきます。
そのモジュールをimportするにはそのスクリプトがある場所をPythonに教える必要があります。
この記事ではPyhtonに独自モジュールのパスを設定する方法を解説します。
独自モジュールのディレクトリパスを通す
Pythonで独自モジュールのディレクトリパスを通す方法は3つあります。
環境変数「PYTHONPATH」を設定する方法
環境変数「PYTHONPATH」を設定すると新たにPythonに独自モジュールの検索パスを追加することができます。
set PYTHONPATH=./myLibs;./myModule;
上記の例では動作ディレクトリ直下のmyLibsとmyModuleをモジュールの検索対象フォルダーに追加しています。
sys.path.append()で設定する方法
Pythonの標準モジュールのsys.path.append()を使うと新たにPythonに独自モジュールの検索パスを追加することができます。
import os sys.path.append( "./myLibs" ) sys.path.append( "./myModule" )
上記の例では動作ディレクトリ直下のmyLibsとmyModuleをモジュールの検索対象フォルダーに追加しています。
.pthファイルを作成する方法
設定ファイル「.pthファイル」をPythonの特定のフォルダーに設置すると新たにPythonに独自モジュールの検索パスを追加することができます。
まずは「.pthファイル」の置き場所を検索します。
import pprint import sys pprint.pprint( sys.path )
上記のコードを実行すると
['C:\\python_test\\py_test', 'C:\\xxxxxxx\\Python37\\python37.zip', 'C:\\xxxxxxx\\Python37\\DLLs', 'C:\\xxxxxxx\\Python37\\lib\\site-packages' ・ ・ ・ 'C:\\xxxxxxx\\Python37\\lib\\site-packages\\win32', 'C:\\xxxxxxx\\Python37\\lib\\site-packages\\win32\\lib', 'C:\\xxxxxxx\\Python37\\lib\\site-packages\\Pythonwin']
のようなフォルダー一覧が表示されます。
(表示結果は見やすいように編集してあります。)
この中の「site-packages」が含まれるフォルダー(上記の例「C:\\xxxxxxx\\Python37\\lib\\site-packages」)に「.pthファイル」を作成しておきます。
.pthファイルの中身は1つの追加フォルダーごとの行で記述します。
C:\\python_test\\myLibs C:\\python_test\\myModule
.pthファイルのファイル名は拡張子が「.pth」であればなんでもOKです。
上記の例では動作ディレクトリ直下のmyLibsとmyModuleをモジュールの検索対象フォルダーに追加しています。
まとめ
Pythonで独自モジュールのディレクトリパスを通す方法は3つあります。
- 環境変数「PYTHONPATH」を設定
- sys.path.append()で設定
- .pthファイル作成
それぞれ使いやすい方法を採用すると良いと思います。