Python从3.12降级至3.11后出现ModuleNotFoundError求助
问题描述
在VSCode中基于Python 3.12.1开发的程序可正常运行,为部署到Azure Function降级至Python 3.11.7后,切换解释器运行脚本抛出ModuleNotFoundError: No module named 'pydantic_core._pydantic_core',所有Python依赖均与脚本位于同一目录。
解决方案
1. 清理现有依赖并重新安装
- 删除当前目录下的
openai、pydantic、pydantic_core等依赖文件夹 - 激活Python 3.11.7的环境(若使用虚拟环境),执行以下命令将依赖安装到当前目录:
pip install openai pydantic --target ./
2. 指定兼容版本安装pydantic_core
部分pydantic_core版本与Python 3.11.7存在适配问题,可指定兼容版本安装:
pip install pydantic_core==2.14.5 --target ./
3. 确认VSCode的Python解释器配置
- 按
Ctrl+Shift+P唤起命令面板,选择Python: Select Interpreter,确保选中Python 3.11.7的解释器(含虚拟环境解释器) - 可在脚本开头添加以下代码,验证当前目录是否被加入Python的搜索路径:
需确认脚本所在目录(import sys print(sys.path)c:\Users\marubins\OneDrive - Microsoft\Desktop\NewsArt)在输出的路径列表中。
4. 生成并基于依赖清单重新安装
先导出当前环境的依赖清单:
pip freeze > requirements.txt
再基于清单重新安装所有适配Python 3.11.7的依赖:
pip install -r requirements.txt --target ./
错误原因
之前用Python 3.12.1安装的依赖(尤其是pydantic_core)是针对3.12版本编译的二进制包,这类二进制包无法在Python 3.11.7环境中运行,导致底层的_pydantic_core模块无法被识别加载,必须针对Python 3.11.7重新安装适配的依赖版本。
内容的提问来源于stack exchange,提问作者MarkR
相关产品推荐
相关产品推荐

