Pythonでプログラムを書いていると、モジュールのインポート時にImportError
が発生することがあります。この記事では、そのようなエラーが発生したときの対処法をまとめています。
Pythonのバージョン確認
まずはPythonのバージョンを確認しましょう。ターミナルで以下のコマンドを実行します。
$ python -V
pyenv
などを使っている場合は、使用したいインタプリタが正しく設定されているか確認します。
$ pyenv versions
system
* 3.6.5 (set by /home/user/.pyenv/version)
$ which python
/home/user/.pyenv/shims/python3
パッケージのインストール確認
次に、必要なパッケージがインストールされているか確認します。以下のコマンドでインストールされているパッケージのリストを表示できます。
$ pip freeze | grep numpy
ここにない場合はpip install
などでインストールしましょう。
パスの確認
import文を読むとpythonは既定のパスにパッケージを探しに行きます。そこにないとimportできないので確認します。
>>> import sys
>>> sys.path
パスが通っていない場合は、以下のいずれかを試してください。
- パッケージをパスが通っている場所に置く
- パスを追加する
- PYTHONPATHを設定する
同じ名前の別のファイルやフォルダがプロジェクト内にないか
たとえばimport os
をしたい場合に、os
という同じ名前のファイル (os.py
) やフォルダが実行ファイルの付近にあるとそちらが優先的にimport対象となります。名前をつけるときは被らないように気をつけましょう。
循環importをしていないか
以下のような循環参照はエラーになります。
# a.py
import b
# b.py
import a
以上、PythonでのImportError
の対処法についてまとめてみました。これらのチェックを行うことで、エラーの原因を特定しやすくなるでしょう。