Pythonでモジュールが読み込めない時に確実に読み込む方法

プログラミング

こんにちは、コンスキです。

Pythonを使っているとimport文でモジュールを読み込む時がありますよね。

pippyenvを使って確実にインストールしたはずなのにimportできない」という経験はありませんか?

今回はそんな時のために使い勝手は悪いけど確実にモジュールが使える方法を紹介します。

エラー「Import “モジュール名” could not be resolve」

インストールしたのに次のようなエラーが出る時は、これから紹介する方法が使える可能性が高いです。

モジュールを同じフォルダに置いちゃう

その方法はモジュールを同じフォルダに置いちゃう方法です。

「モジュールを同じフォルダに置く」とは、どういうことかわかりませんよね。

インストールしたモジュールを、そのモジュールをimportしたいファイルと同じフォルダに入れるということです。

少し詳しく説明しますね。

ターミナルでモジュールをインストールする場面を想像してください。

pip install pandas

例えば、こんな感じに「pandas」というモジュールをインストールしました。

pandasという名前のフォルダがパソコンのどこかにインストールされたということです。

「モジュールを同じフォルダに置く」というのは、

そのpandasのフォルダを見つけてきて、pandasを使いたいPythonファイルがあるフォルダに入れるということです。

VSCodeでフォルダの構成を見ると次のようになります。

こうしてしまえば、大抵の場合はエラーが消えて、importできるようになります。

モジュールのimportでエラー出る原因

さっきほどの「Import “モジュール名” could not be resolve」というエラーが出る原因には次の2つが考えられます。

  1. モジュールをまとめたフォルダのパスが通ってない
  2. モジュールがインストールされていない

インストールしたことが確実であれば、2は原因から外してもいいですよね。

モジュールのインストール忘れはほとんどないと思いますので、多くの場合、1が原因であることが多いと思います。

もともと、「import モジュール名」でモジュールを使うことができるのは、そのPythonファイルと同じフォルダにモジュールがあった場合です。

同じフォルダにモジュールがなくても、「import モジュール名」でそのモジュールを使えるようにすることがパスを通すということです。

ということは、もともとの方法でimportすればいいのではないか?という考え方です。

おわりに

色々なPythonファイルで同時にモジュールをimportときはこの方法を使うと、たくさんの容量を使ってしまいます。

それぞれのPythonファイルがあるフォルダに、モジュールを複製して入れておく必要があるためです。

しかし、importがなかなかできなくて先に進められないことの方が大変!というときはぜひこちらの方法を使ってモジュールを使うことも考えてみてください。

コメント

  1. jack より:

    結局「モジュールを同じフォルダに置く」が書いてないように見えるんですけど。。。

    • コンスキ コンスキ より:

      コメントありがとうございます!
      ちゃんと書けていなくて、分かりづらくて本当にすみません(>人<;)

      「モジュールを同じフォルダに置く」の部分はフォルダのイラストの部分で、説明しているつもりでした!
      「モジュールを同じフォルダに置く」

      「モジュールを同じフォルダに置く」は次のように書けると思います。(的外れなことを書いていたら指摘してください!)

      main.pyが実行するファイルだったとします。
      そして、その中でpandasというモジュールを使いたいとします。

      1. pandasのフォルダがあるのは、次のコマンドで表示された場所です。
      2. pip show pandas

      3. そのパスにあるフォルダの中身を見てください。
      4. そこに入っている、pandasという名前のフォルダを見つけます。
      5. そのpandasフォルダを、先ほどのmain.pyが入っているフォルダの中に置きます。

      この説明では、pandas フォルダがモジュールのことを言っています。main.pyが入っているフォルダが同じフォルダのことを言っています。

タイトルとURLをコピーしました