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