Lo siento, esto es básico. Seguí un tutorial bastante simple y aparece este error al intentar ejecutar flask localmente:
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'
Sin embargo, en el mismo entorno, cuando ejecuté pip list, me dice que tengo ese módulo: 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)
Además de eso, el código que tengo en mi archivo parece correcto según lo que veo:
# IMPORTS
from flask import Flask, render_template
from flask_sqlalchemy import SQLAlchemy
¿Dónde podría haberme equivocado?
Respuesta1
El problema parece ser que cuando ejecuta su script flask, el entorno que usa (anaconda) no tiene el flask_sqlalchemy
paquete instalado, lo que hace que el script falle, pero cuando verifica si está instalado o no, hágalo en el entorno virtual venv
donde efectivamente esté instalado.