Flask导入db时报错No module named 'flask',求解决及数据库推荐
解决
ModuleNotFoundError: No module named 'flask'错误 已经试过pip安装和重建虚拟环境还没解决,试试下面几个排查点:
- 确认虚拟环境已激活:在项目根目录打开命令行,执行
venv\Scripts\activate(Windows系统),激活后命令行前缀会出现(venv)。如果没激活,你安装的包会放到全局Python环境,而运行代码时用的是虚拟环境的Python,自然找不到包。 - 检查PyCharm的Python解释器配置:打开PyCharm,依次点击
File > Settings > Project: [你的项目名] > Python Interpreter,确认选中的解释器是项目内venv文件夹下的python.exe,而不是系统全局的Python。 - 强制用虚拟环境的pip安装依赖:激活虚拟环境后,直接执行
pip install flask flask-sqlalchemy flask-login,或者如果pip指向不对,用python -m pip install flask flask-sqlalchemy flask-login,确保依赖包安装到当前虚拟环境中。 - 排查多Python版本冲突:如果系统里装了多个Python版本,可能pip和python命令对应了不同版本。激活虚拟环境后,执行
where python(Windows)或which python(Linux/macOS),确认路径是项目venv下的Python,再执行安装命令。
Flask可搭配的其他数据库
除了你当前用的SQLite,还有这些常用选项:
- MySQL/MariaDB:关系型数据库,适合中大型项目。可以用
flask-mysqldb扩展,或者通过flask-sqlalchemy配合pymysql/mysql-connector-python驱动连接。 - PostgreSQL:功能强大的关系型数据库,支持复杂查询和事务。用
psycopg2驱动配合flask-sqlalchemy,或者flask-postgres扩展。 - MongoDB:非关系型文档数据库,适合存储非结构化数据。使用
flask-pymongo扩展来快速集成。 - Redis:内存型键值数据库,常用作缓存、会话存储或消息队列。通过
flask-redis扩展集成,能大幅提升高频访问数据的响应速度。 - Oracle:企业级关系型数据库,适合大型企业项目。用
cx_Oracle驱动配合flask-sqlalchemy实现连接。
内容的提问来源于stack exchange,提问作者Mirua_Ki
相关产品推荐
相关产品推荐

