【python】自作モジュールのImportError: No module named 'xxx'時にまず確認すること

ググればいくらでも出てくる内容ですが、後の自分のためにも残しておきます。

結論

import時の検索パス直下に自作モジュールが存在しないことが原因なので、検索パスを追加してあげる。

説明

import my_module

ImportError: No module named 'my_module'が出る場合は以下のコードでimportの検索パスを確認する。

import sys
print(sys.path)

検索パスに自作モジュール(my_module.pyとする)を含むディレクトリ(/path/to/my_module/とする)が含まれない場合は以下のコードでimportの検索パスを追加する。

sys.path.append('/path/to/my_module/')

これでmy_moduleimportが成功するようになっているはずです。

コード

import sys
# /path/to/my_module/が含まれない
# print(sys.path)
sys.path.append('/path/to/my_module/')
# /path/to/my_module/が追加されてるはず
# print(sys.path)
import my_module

注意点

環境の違いなどにより上記の対応では解決しないことがあると思います。 しかし、エラー内容に対する対応としてはこれが正しいものかと思います。

参考にしたURL

Python Tips:ライブラリ読み込み対象ディレクトリを追加したい - Life with Python