LoginSignup
5
7

More than 3 years have passed since last update.

PythonでModuleNotFoundError: No module namedした話

Posted at

問題

pip install flaskしたflaskがimportするとタイトルのエラーを吐く。
何なら、pandasもimportするとエラーを吐く。

逃げろジャイローーッ!!これはスタンド攻撃だァァーーーッ!!!

ネタバレ

Inkscapeくんのせいでした。
(ここでInkscape関係なさそうな人はおまけへ)

原因究明

まずは焦らず慌てずちゃんとインストールできているか調べる。
ターミナルで以下のコードをポチッとな。

pip list

結果
2020-09-16 (3).png

ふむふむ。
インストールはちゃんとできている。

では、次。
Pythonがモジュールのインポートで探してるディレクトリはどこか、確認する。
Pythonコンソールを開いて以下のコードを実行する。

import sys
import pprint
pprint.pprint(sys.path)

結果はこう
2020-09-16 (4).png

( ゚д゚) ・・・
 
(つд⊂)ゴシゴシ
 
(;゚д゚) ・・・
 
(つд⊂)ゴシゴシゴシ

(;;゚ Д゚) …!?

Inkscape!?

そ、そういえば、この間Inskcapeをインストールしたとき、環境変数PATHに追加にチェックしたような……
Inkscape、お前絶対許さねえからな!!!(責任転嫁)
(ここでInkscape関係なかった人はおまけへ)

対処

Pythonくんが変なところを参照しているのは、環境変数PATHがトチ狂ったから。
これをまともなように編集し直してあげればよい。

環境変数の設定はコントロールパネルシステムとセキュリティシステム→(左欄の)システムの詳細設定環境変数から行える。
今回、問題となっているのはユーザー環境変数ではなく、下欄のシステム環境変数のPATH(環境によっては小文字かも)。
これを選択して編集。
Inkscapeなんたらってなっているパスを消す。
2020-09-16 (5).png

消したら保存して再起動。
チェックしてみると…
2020-09-16 (6).png

ktkr~~~~~~!!!!!
一件落着。

まとめ

変なものをホイホイと環境変数PATHに追加しない!

おまけ (Inkscape関係なかった人たちへ)

原因究明の項のモジュールをインストールできているかの確認をまずしてほしい。
インストールがミスっているならもう1回インストール、できていたならば次のコードを。

pip show [importできなくて困ってるモジュール名]

このコードはモジュールの場所を教えてくれる。
そして、Pythonコンソールを開いてPythonがどこを参照してインポートしようとしているかの確認する。
手順は原因究明にある(コンソールで、sysをなんたらってやつ)。

Pythonの参照先とモジュールの場所は一致しているだろうか。おそらく一致していないと思う。
であれば、対処の項の環境変数の設定の仕方を参考に、Pythonがインストールされたフォルダを環境変数PATHに追加する。
Pythonのインストールフォルダは人によって違うだろうが、筆者の環境ではC:\Users\[筆者の名前]\AppData\Local\Programs\Python\Python38にあった。

見つからない場合は、スタートメニューからPythonを探して、右クリックメニューのその他ファイルの場所を開く
開いたフォルダで選択されているもの(おそらくPythonのショートカット)の右クリックメニューからファイルの場所を開く
これでpythonがインストールされたフォルダにたどり着く。

そもそもスタートメニューにPythonがないって人は諦めてPythonを再インストールしよう。
その際、インストール画面をじっくり見て、環境変数PATHに追加にチェックを入れること。
そうすれば解決するはずだ。

それでは、よいPythonライフを!

5
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
7