MacOS环境下FastAPI项目运行提示aiosqlite模块不存在如何解决
问题排查与解决方案
该问题是MacOS平台Python多版本环境和依赖库检索逻辑共同导致的常见异常,核心原因是运行服务时调用的Python解释器和安装aiosqlite的虚拟环境解释器不匹配,或是databases库未正确识别已安装的aiosqlite驱动,可按以下步骤逐一排查解决:
- 验证依赖路径匹配
激活虚拟环境后依次执行以下命令,确认输出路径均为当前项目env目录下的对应文件:
若执行最后一条命令直接报错,说明虚拟环境依赖安装异常,直接跳至兜底方案重建虚拟环境。which python which pip python -c "import aiosqlite; print(aiosqlite.__file__)" - 修正服务启动调用方式
不要直接调用uvicorn命令,避免触发全局安装的uvicorn关联系统Python解释器,统一使用当前虚拟环境的模块方式启动:
若使用VS Code、PyCharm等编辑器启动,需提前在编辑器项目设置中选择当前项目python -m uvicorn main:app --reloadenv目录下的Python作为项目解释器,禁止使用系统全局Python版本。 - 强制指定数据库驱动
修改代码中数据库连接串配置,显式指定aiosqlite驱动,避免databases库自动检索驱动时出现异常:DATABASE_URL = "sqlite+aiosqlite:///./test.db" - 重建虚拟环境(兜底方案)
删除现有env文件夹后,重新执行以下命令创建全新虚拟环境并安装所有依赖:python3.9 -m venv env source env/bin/activate pip install fastapi uvicorn databases[sqlite] sqlalchemy aiosqlite
内容的提问来源于stack exchange,提问作者Андрей Рублев
相关产品推荐
相关产品推荐

