You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Python 3.13.0与Pydantic搭配时出现“No module named 'typing_extensions'”错误的原因及解决方法

Python 3.13.0与Pydantic搭配时出现“No module named 'typing_extensions'”错误的原因及解决方法

问题背景

我之前有一段代码在Python 3.10.12 + Pydantic 2.7.3的环境下运行完全正常。后来看到资料说Pydantic ^2.8版本开始支持Python 3.13,于是我切换到Python 3.13.0环境,安装了Pydantic 2.10.2,但就连在shell里执行import pydantic这么基础的操作都报错了,错误信息如下:

File "/home/user/path-to-package/src/validator.py", line 9, in <module>
    from pydantic import TypeAdapter, BaseModel, validator
  File "/home/user/path-to-package/.venv/lib/python3.13/site-packages/pydantic/__init__.py", line 396, in <module>
    _getattr_migration = getattr_migration(__name__)   
  File "/home/user/path-to-package/.venv/lib/python3.13/site-packages/pydantic/_migration.py", line 260, in getattr_migration
    from .errors import PydanticImportError
  File "/home/user/path-to-package/.venv/lib/python3.13/site-packages/pydantic/errors.py", line 7, in <module>
    from typing_extensions import Literal, Self 
ModuleNotFoundError: No module named 'typing_extensions'

这到底是为什么?我该怎么解决这个问题?


原因分析

其实问题很直白:尽管Python 3.13已经内置了不少原本属于typing_extensions的特性,但Pydantic 2.x系列(包括你用的2.10.2)在Python 3.13环境下依然依赖typing_extensions。你的虚拟环境里没有安装这个依赖,所以Python找不到它,就抛出了ModuleNotFoundError

解决方法

修复起来非常简单,只需要在你的虚拟环境中安装typing_extensions即可,执行下面的命令:

pip install typing_extensions

安装完成后,再尝试执行import pydantic或者运行你的代码,应该就能正常工作了。

备注:内容来源于stack exchange,提问作者GoneAsync

火山引擎 最新活动