SQLAlchemy 2.0+ 已原生集成异步支持,无需额外安装 sqlalchemy[asyncio];只需确保安装的是 2.0 或更高版本的 SQLAlchemy,即可直接导入 sqlalchemy.ext.asyncio 中的异步组件(如 AsyncEngine、AsyncSession)。
sqlalchemy 2.0+ 已原生集成异步支持,无需额外安装 `sqlalchemy[asyncio]`;只需确保安装的是 2.0 或更高版本的 sqlalchemy,即可直接导入 `sqlalchemy.ext.asyncio` 中的异步组件(如 `asyncengine`、`asyncsession`。
SQLAlchemy 自 2.0 版本起,已将 asyncio 扩展作为核心功能内置,不再以独立可选依赖形式存在。这意味着:你不需要执行 pip install sqlalchemy[asyncio] —— 该语法在旧版文档中曾用于提示需安装异步驱动(如 aiosqlite、asyncpg),但在当前主流版本中,它仅在极少数特殊环境(如某些 Apple M1/M2 系统上因 wheel 兼容性问题)才可能需要,绝大多数情况下纯属冗余。
✅ 正确做法如下:
-
确保安装 SQLAlchemy 2.0+(推荐最新稳定版):
pip install --upgrade sqlalchemy
验证版本:
import sqlalchemy print(sqlalchemy.__version__) # 应输出 2.0.0 或更高
-
直接导入异步模块(无需额外安装):
from sqlalchemy.ext.asyncio import AsyncEngine, create_async_engine, AsyncSession from sqlalchemy import text # 创建异步引擎(需搭配 async driver,如 asyncpg、aiomysql) engine = create_async_engine( "postgresql+asyncpg://user:pass@localhost/db", echo=True, ) print(type(engine)) # <class></class>
⚠️ 注意事项:
- sqlalchemy[asyncio] 并非必需依赖包,它只是历史遗留的可选标记(extras_require),实际不提供新代码,仅尝试安装部分异步驱动——但这些驱动应由你根据数据库类型显式安装(例如:pip install asyncpg 用于 PostgreSQL,pip install aiomysql 用于 MySQL)。
- 若导入报错 AttributeError: module 'sqlalchemy.ext' has no attribute 'asyncio',大概率是 SQLAlchemy 版本低于 2.0,请运行 pip show sqlalchemy 检查并升级。
- 异步功能必须配合支持 asyncio 的数据库驱动使用;同步驱动(如 psycopg2)无法与 AsyncEngine 兼容。
? 总结:删掉 pip install sqlalchemy[asyncio],专注升级 SQLAlchemy 到 2.0+,再按需安装对应异步数据库驱动,即可安全、标准地使用 sqlalchemy.ext.asyncio。











