Jupyter Notebook导入SQLAlchemy失败:typing_extensions版本兼容问题
解决SQLAlchemy导入时的
dataclass_transform导入错误 问题重现
在Jupyter Notebook中导入SQLAlchemy时触发以下错误:
~\Anaconda3\lib\site-packages\sqlalchemy\util\typing.py in 36 from typing_extensions import Annotated as Annotated # 3.8 37 from typing_extensions import Concatenate as Concatenate # 3.10 ---> 38 from typing_extensions import ( 39 dataclass_transform as dataclass_transform, # 3.11, 40 ) ImportError: cannot import name 'dataclass_transform' from 'typing_extensions' (C:\Users\username\Anaconda3\lib\site-packages\typing_extensions.py)
当前环境情况:
- 同时安装了
typing_extensions3.7.4.3和4.0.0版本 - 同时安装了
SQLAlchemy2.0.12和1.3.20版本 - 错误注释中的
3.11指Python 3.11原生自带dataclass_transform特性,并非要求typing_extensions为3.11版本
解决方案
1. 匹配版本依赖
- 使用SQLAlchemy 2.0.12:该版本要求
typing_extensions至少为4.2.0(dataclass_transform从这个版本起被加入typing_extensions),执行命令升级:pip install --upgrade typing_extensions>=4.2.0 - 保留旧版typing_extensions:若不想升级
typing_extensions,切换到SQLAlchemy 1.x版本(如1.3.20),该版本不依赖dataclass_transform,执行命令:pip install sqlalchemy==1.3.20
2. 清理多版本冲突
环境中同时存在多个版本的包会导致依赖识别混乱,建议先清理再重新安装:
- 卸载现有版本:
pip uninstall -y typing_extensions sqlalchemy - 安装匹配的版本组合:
- 组合1(新版SQLAlchemy):
pip install sqlalchemy==2.0.12 typing_extensions>=4.2.0 - 组合2(旧版SQLAlchemy):
pip install sqlalchemy==1.3.20 typing_extensions==3.7.4.3
- 组合1(新版SQLAlchemy):
3. 验证Jupyter环境
在Jupyter Notebook中执行以下代码,确认使用的环境包版本符合要求:
!pip list | findstr /i "sqlalchemy typing_extensions"
内容的提问来源于stack exchange,提问作者kips
相关产品推荐
相关产品推荐

