仮想環境を使ってpythonの実行してるとしょっちゅう出てきて、その度にググるのが手間になってきたので自分用対処方法メモです。
細かい理由とかは書いてませんが、一番下に参考記事のリンクがありますのでそちらを見ていただけると理解が深まると思います。
pythonファイル実行時に出現するエラーメッセージ
# 処理を実行
> python xxxxxx.py
Traceback (most recent call last):
File "/Users/XXXXXXXX/xxxxxx.py", line 1, in <module>
import {モジュール名}
ModuleNotFoundError: No module named '{モジュール名}'
対処方法
pipでモジュール情報を確認
> pip show {モジュール名}
# ⬇️こんな情報が出てくる
Name: {モジュール名}
Version: 0.13
Summary: {モジュール名} cryptographic signature library (pure python)
Home-page: http://github.com/xxxxxx/xxxxxx
Author: xxxxx xxxxx
Author-email: xxxxx@xxxxx.com
License: XXXXX
Location: /opt/anaconda3/envs/xxxxxxxx/lib/pythonX.X/site-packages -> このPASSをコピーする
Requires:
Required-by:
上記の時点で、モジュールが存在してなかった場合は普通にinstallする(importのコード書いてる時点でinstall済みが大半なのであまりないはず)
pip install {モジュール名}
sys.pathをpythonの実行ファイルの一番頭に入れる
import sys
# passの設定 (pip showで出てきた、LocationのPASSを以下に設定)
sys.path.append('/opt/anaconda3/envs/xxxxxxxx/lib/pythonX.X/site-packages')
# passの設定はimportするモジュールより前に設定
import xxxxxx
これで概ね解決。
参考記事
→上記手順について、さらに細かに説明書いてくれているので、背景理由知りたい方はこちらを読むと理解が深まると思います。