Python import の仕組みを理解する

By: 壮大 増田
Posted: October 14, 2021

この記事のモチベーション

基本

基本的な事柄についてはこの記事に丁寧に書かれている

簡単にまとめると

実例

上記記事を同じく参照しながら記載する。最もよく見るパターンとして以下の構成が考えられる。これは正しく機能するとのこと。

/root
  - main.py
  - /module/
    - hello.py
from module.hello import hello

hello()
def hello():
    print("Hello World!")
$ python main.py
Hello World!

別モジュールは、起動スクリプトより下の階層に配置することが推奨されている。

https://docs.python.org/ja/3.9/tutorial/modules.html#

よくやらかすパターンが、以下のようにメインスクリプト用ディレクトリとモジュール用ディレクトリを分けてしまうケース。これだと sys.path に読み込みたいモジュールのディレクトリが登録されないので、 from ..xxx.yyy import xxx みたいな記述で対処しなければならない。

が、これで結構ハマることがあるし、Pythonらしくない書き方ではないかと思う。

/root
  - main/
    - main.py
  - /module/
    - hello.py