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

パスが通っていない場合は、以下のいずれかを試してください。

  1. パッケージをパスが通っている場所に置く
  2. パスを追加する
  3. PYTHONPATHを設定する

同じ名前の別のファイルやフォルダがプロジェクト内にないか

たとえばimport osをしたい場合に、osという同じ名前のファイル (os.py) やフォルダが実行ファイルの付近にあるとそちらが優先的にimport対象となります。名前をつけるときは被らないように気をつけましょう。

循環importをしていないか

以下のような循環参照はエラーになります。

# a.py
import b

# b.py
import a

以上、PythonでのImportErrorの対処法についてまとめてみました。これらのチェックを行うことで、エラーの原因を特定しやすくなるでしょう。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です