Pythonでプログラミングをしていて最もイヤな事はエラーですね。初心者がよく陥るエラーにimport時のエラーがあります。特に文法も間違っているわけでも無いのにエラーが出る場合もあるので、まず最初にファイル名等気を付けるポイントを説明します。
こんにちは。wat(@watlablog)です。
本日は初心者がよくやるimport時のエラーを解決していきます!
Import時によくある2つのエラー
①ModuleNotFoundError
例えば、以下のようなimportだけのコードを実行してみます。
1 |
import pandas as pd |
ここで取り扱うエラーは、たったこれだけの文で発生する以下のModuleNotFoundErrorです。
1 |
ModuleNotFoundError: No module named 'pandas' |
僕は「Pythonインストール方法とAnacondaを使わない3つの方法」からPython開発環境を構築していったので、Anacondaを使っていません。
そのため大抵初めて使うパッケージの前にはpipインストールを行うのですが、最初からAnacondaを使っている人はこのModuleNotFoundErrorによく出くわすのではないでしょうか?
このエラーは「パッケージが見つからない」ことが原因です。
入れたつもりなんだけど…という人は「Pythonのパッケージ管理ツール pipの使い方とコマンド集」で紹介した「python -m pip freeze」でインストールされているパッケージを確認してみて下さい!
②AttributeError
次によくあるエラーは、例えば以下の画像のような状況で発生します。
書いてあるコードは先ほどと同じimport文ですが、この状態でプログラムを実行すると以下のAttributeErrorが発生します。
1 |
AttributeError: module 'csv' has no attribute 'excel' |
これはコード自体には問題ないのですが、「csv.py」というファイルが実行プログラムと同一ディレクトリに入っていると発生します。
実はこの記事を書いた理由は、筆者である僕がかなり頻繁にやらかすのがこのAttributeErrorだったからです…。結構他のパッケージをimportする時にもやることが多く、一度まとめておこうと思いました。
有名な質問サイトStack Overflowにも同じようなエラーに関する質問が多く寄せられています。
Try renaming your
Stack Overflow : module 'pandas' has no attribute 'read_csvcsv.py
to something else, likecsv_test.py
. Looks likepandas
is being confused about what to import.
このエラーは.py名、画像名といったファイル名がパッケージ内のファイルや関数と競合していると発生します。
そのため解決策は名前を固有のものに変える、という一択です。
まとめ
今回は短い記事ですが、自分がよくやってしまうエラーであるため当WATLABブログにもまとめておこうと思い執筆しました。
エラーは誰しも経験すると思いますが、しっかりと原因を把握して作業を続けることが大事ですね。
import時に発生するエラーはおそらく今回紹介したModuleNotFoundErrorとAttributeErrorが最も多いと思いますが、他にも僕の方で経験したエラーはブログにまとめておこうと思います。
プログラムを沢山書いているとエラーがよく発生しますね!ひとつずつ解決していきましょう!
Twitterでも関連情報をつぶやいているので、wat(@watlablog)のフォローお待ちしています!