このステップでは、Python がモジュールパスをどのように扱い、モジュールファイルの場所をどのように特定するかを学びます。モジュールパスを理解することは、Python プロジェクトの管理と整理に不可欠です。
-
LabEx 環境で VS Code エディタを開きます。
-
~/project
ディレクトリに module_path.py
という名前の新しいファイルを作成します。
import sys
print(sys.path)
このスクリプトは sys
モジュールをインポートし、sys.path
の値(ディレクトリパスのリスト)を出力します。
-
ターミナルで以下のコマンドを使用してスクリプトを実行します。
python module_path.py
ターミナルにディレクトリパスのリストが表示されます。これが Python がモジュールを検索する順序です。出力は次のようになります。
['/home/labex/project', '/usr/lib/python310.zip', '/usr/lib/python3.10', '/usr/lib/python3.10/lib-dynload', '/usr/local/lib/python3.10/dist-packages', '/usr/lib/python3/dist-packages']
リストの最初のパス /home/labex/project
は、現在の作業ディレクトリです。これは、Python が最初にスクリプトを実行しているディレクトリ内のモジュールを探すことを意味します。
他のパスは、Python ライブラリがインストールされているシステムディレクトリです。
-
では、簡単なモジュールを作成し、Python がそれをどのように見つけるかを見てみましょう。~/project
ディレクトリに my_module.py
という名前の新しいファイルを作成します。
def my_function():
return "Hello from my_module!"
このモジュールは my_function
という単一の関数を定義しています。
-
~/project
ディレクトリに main.py
という名前の別のファイルを作成します。
import my_module
result = my_module.my_function()
print(result)
このスクリプトは my_module
モジュールをインポートし、my_function
関数を呼び出します。
-
main.py
スクリプトを実行します。
python main.py
次の出力が表示されるはずです。
Hello from my_module!
これは、my_module
モジュールが main.py
スクリプトと同じディレクトリにあり、そのディレクトリが sys.path
に含まれているため、Python がそのモジュールを見つけてインポートできたことを示しています。