こんにちは、コンスキです。
Pythonを使っているとimport文でモジュールを読み込む時がありますよね。
「pipやpyenvを使って確実にインストールしたはずなのにimportできない」という経験はありませんか?
今回はそんな時のために使い勝手は悪いけど確実にモジュールが使える方法を紹介します。
エラー「Import “モジュール名” could not be resolve」
インストールしたのに次のようなエラーが出る時は、これから紹介する方法が使える可能性が高いです。
モジュールを同じフォルダに置いちゃう
その方法はモジュールを同じフォルダに置いちゃう方法です。
「モジュールを同じフォルダに置く」とは、どういうことかわかりませんよね。
インストールしたモジュールを、そのモジュールをimportしたいファイルと同じフォルダに入れるということです。
少し詳しく説明しますね。
ターミナルでモジュールをインストールする場面を想像してください。
pip install pandas
例えば、こんな感じに「pandas」というモジュールをインストールしました。
pandasという名前のフォルダがパソコンのどこかにインストールされたということです。
「モジュールを同じフォルダに置く」というのは、
そのpandasのフォルダを見つけてきて、pandasを使いたいPythonファイルがあるフォルダに入れるということです。
VSCodeでフォルダの構成を見ると次のようになります。
こうしてしまえば、大抵の場合はエラーが消えて、importできるようになります。
モジュールのimportでエラー出る原因
さっきほどの「Import “モジュール名” could not be resolve」というエラーが出る原因には次の2つが考えられます。
- モジュールをまとめたフォルダのパスが通ってない
- モジュールがインストールされていない
インストールしたことが確実であれば、2は原因から外してもいいですよね。
モジュールのインストール忘れはほとんどないと思いますので、多くの場合、1が原因であることが多いと思います。
もともと、「import モジュール名」でモジュールを使うことができるのは、そのPythonファイルと同じフォルダにモジュールがあった場合です。
同じフォルダにモジュールがなくても、「import モジュール名」でそのモジュールを使えるようにすることがパスを通すということです。
ということは、もともとの方法でimportすればいいのではないか?という考え方です。
おわりに
色々なPythonファイルで同時にモジュールをimportときはこの方法を使うと、たくさんの容量を使ってしまいます。
それぞれのPythonファイルがあるフォルダに、モジュールを複製して入れておく必要があるためです。
しかし、importがなかなかできなくて先に進められないことの方が大変!というときはぜひこちらの方法を使ってモジュールを使うことも考えてみてください。
コメント
結局「モジュールを同じフォルダに置く」が書いてないように見えるんですけど。。。
コメントありがとうございます!
ちゃんと書けていなくて、分かりづらくて本当にすみません(>人<;)
「モジュールを同じフォルダに置く」の部分はフォルダのイラストの部分で、説明しているつもりでした!
「モジュールを同じフォルダに置く」は次のように書けると思います。(的外れなことを書いていたら指摘してください!)
main.pyが実行するファイルだったとします。
そして、その中でpandasというモジュールを使いたいとします。
pip show pandas
この説明では、pandas フォルダがモジュールのことを言っています。main.pyが入っているフォルダが同じフォルダのことを言っています。