Alembic结合asyncio初始化失败:无法导入AsyncAttrs
解决办法
修正导入路径:SQLAlchemy 2.0 起,
AsyncAttrs已经从sqlalchemy.ext.asyncio迁移到sqlalchemy.orm模块下。打开你的database.py和env.py,把所有from sqlalchemy.ext.asyncio import AsyncAttrs的语句改成from sqlalchemy.orm import AsyncAttrs。校验依赖版本:执行
pip list查看已安装的包,确保 SQLAlchemy 确实是 2.0.35 版本,没有残留的旧版本(比如 1.x 版本)干扰。如果发现多个版本,用pip uninstall sqlalchemy全部卸载后再重新安装指定版本:pip install sqlalchemy==2.0.35。清理缓存并重试:删除项目根目录下的
__pycache__文件夹,然后重新执行alembic revision --autogenerate -m "initial revision",避免缓存的旧代码导致导入错误。检查异步引擎配置:确认
env.py中使用的是 SQLAlchemy 2.0 兼容的异步引擎创建方式,比如:from sqlalchemy.ext.asyncio import create_async_engine engine = create_async_engine(DATABASE_URL)确保没有混用旧版同步引擎的配置逻辑。
内容的提问来源于stack exchange,提问作者Grey may
相关产品推荐
相关产品推荐

