![Python インポート エラー - モジュールがありません](https://rvso.com/image/769299/Python%20%E3%82%A4%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%88%20%E3%82%A8%E3%83%A9%E3%83%BC%20-%20%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93.png)
申し訳ありませんが、これは基本的なことです。かなり簡単なチュートリアルに従いましたが、Flask をローカルで実行しようとすると、次のエラーが発生します。
Traceback (most recent call last):
File "/Users/james/opt/anaconda3/lib/python3.8/site-packages/flask/cli.py", line 240, in locate_app
__import__(module_name)
File "/Users/james/Documents/GitHub/flask-app-blueprint/project/__init__.py", line 3, in <module>
from flask_sqlalchemy import SQLAlchemy
ModuleNotFoundError: No module named 'flask_sqlalchemy'
しかし、同じ環境でpip listを実行すると、そのモジュールがあることがわかります: Flask-SQLAlchemy 2.2
(venv) (base) james flask-app-blueprint % pip3 install flask-sqlalchemy
Requirement already satisfied: flask-sqlalchemy in ./venv/lib/python3.8/site-packages (2.5.1)
Requirement already satisfied: Flask>=0.10 in ./venv/lib/python3.8/site-packages (from flask-sqlalchemy) (1.0.2)
Requirement already satisfied: SQLAlchemy>=0.8.0 in ./venv/lib/python3.8/site-packages (from flask-sqlalchemy) (1.3.3)
Requirement already satisfied: Jinja2>=2.10 in ./venv/lib/python3.8/site-packages (from Flask>=0.10->flask-sqlalchemy) (2.11.3)
Requirement already satisfied: itsdangerous>=0.24 in ./venv/lib/python3.8/site-packages (from Flask>=0.10->flask-sqlalchemy) (0.24)
Requirement already satisfied: Werkzeug>=0.14 in ./venv/lib/python3.8/site-packages (from Flask>=0.10->flask-sqlalchemy) (2.0.1)
Requirement already satisfied: click>=5.1 in ./venv/lib/python3.8/site-packages (from Flask>=0.10->flask-sqlalchemy) (7.0)
Requirement already satisfied: MarkupSafe>=0.23 in ./venv/lib/python3.8/site-packages (from Jinja2>=2.10->Flask>=0.10->flask-sqlalchemy) (2.0.1)
それに加えて、ファイル内のコードは、私が見た限りでは正しいように見えます。
# IMPORTS
from flask import Flask, render_template
from flask_sqlalchemy import SQLAlchemy
どこで間違えたのでしょうか?
答え1
問題は、Flask スクリプトを実行すると、それが使用する環境 (anaconda) にパッケージがインストールされていないためにスクリプトが失敗するが、インストールされているかどうかを確認するときは、実際にインストールされているflask_sqlalchemy
仮想環境で確認するということであるようです。venv