スポンサーリンク

【ModuleNotFoundError】pip3でインストールしたモジュールがPythonに認識されない場合の解決法

みなさんこんにちは。みなみです。

先日久しぶりにPython触ってみたんですが、 pip3 でインストールしたモジュールがうまく認識され ず ModuleNotFoundError 連発してハマったので解決策共有します。

スポンサーリンク

結論

とりあえず先に解決方法共有しておきます。

結論を言うと、pip3でインストールする場所のパスが通っていなくて認識されてなかった系です。

  1. python --versionで使用しているPythonのバージョンを確認する。
  2. PYTHONPATH~/.bash_profileに追加する
// Pythonのバージョンを確認する。
// 今回は3.7.2なのでPYTHONPATHに3.7を通す
$ python --version
Python 3.7.2

// .bash_profile、もしくは.bashrcに以下の行を追加する
// export PYTHONPATH='/usr/local/lib/python3.7/site-packages'
$ vim ~/.bash_profile

コマンド叩き終わって、bash設定ファイルの変更も完了したらターミナルを再起動するか以下のコマンドを叩いて、bashを読み込ませます。

// ~/.bashrcを変更した場合は"source ~/.bashrc"でOK
$ source ~/.bash_profile

パスの設定漏れでModuleNotFoundErrorが発生していた場合、これで対応完了です。

補足:~/.bash_profileと~/.bashrcの設定内容について

参考に今回実際どのようにファイルを変更したか整理しますね。

自分の場合は~/.bash_profileに直接記述せず~/.bashrcを使うようにしているので、~/.bashrcに以下の一行を追加しました。
(他のパスは色々名前とか情報出ちゃうのでモザイクしていますが、同じような内容を書いてあります。)

ちなみに~/.bash_profileはこんな感じで、ただ~/.bashrcを読み込むようにしてあります。

今回なぜハマったか

久しぶりにPython触ったというのもあるのですが、個人的にpip3のわかりづらさと、エラーメッセージの分かりづらさがネックだった気がします…。

今回はPCモニター上で自動でクリック処理をしたりするスクリプトを作りたかったのでpyautoguiをインストールしたのですが、参考サイト通りにpip insall pyautoguiを実行してもpip: command not foundというエラーが表示されてしまいました。

まぁ単純にpython3ではpipじゃなくてpip3を使えというだけだったんですが、知識不足でハマっていました…。

それにしても python3 がリリースされてから10年以上経つのに、なぜサイトの多くはpip install ...と記述しているんでしょうね?どなたか事情をご存知でしたら教えてください…。

次にModuleNotFoundErrorです。

”ModuleNotFoundError pyautogui”などで検索したところ実に様々な内容があり、色々試してみましたが、私の場合効果があったのはパスを通す、という内容でした。

中にはPyCharm上のメニューからPyAutoGuiをインストールしないといけない、というものもありましたが、今回は関係なかったですね…。

手当たりしだい試しては設定戻してしてたので、やけに時間かかった気がします…。

まとめ

PythonでModuleNotFoundErrorが発生する原因は色々あるようだけど、まずは基本のパスが通っているかから確認しようね…。

後はインストール完了したつもりで実はCompleteしていない系もあるので、以下のコマンドでpip3にインストールしたモジュール一覧も確認してみようね。

$ pip3 list

コメント

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