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

已安装pydantic-core但仍出现ModuleNotFoundError: No module named 'pydantic_core._pydantic_core'报错

已安装pydantic-core但仍出现ModuleNotFoundError: No module named 'pydantic_core._pydantic_core'报错

嘿,我之前在Alpine容器里踩过类似的坑,来给你唠唠可能的原因和解决办法!

先复盘下你的场景哈:

  • 用的是基于node:20-alpine的Docker容器,跑的是Python 3.13
  • uv pip install mcp==1.6.0装的依赖
  • 导入from mcp.server import NotificationOptions, Server时,就弹出了找不到pydantic_core._pydantic_core的错误,可明明已经装了pydantic-core对吧?

大概率是这几个原因导致的,对应解决办法给你列出来:

1. Alpine系统缺底层依赖,导致pydantic-core没装对

Alpine用的是musl libc,而很多Python包的预编译wheel是针对glibc做的,pydantic-core的底层扩展模块需要依赖系统库才能正常安装。你可以先装系统编译依赖,再重新装pydantic-core:
首先在容器里执行:

apk add --no-cache gcc musl-dev python3-dev

然后强制重新从源码编译安装pydantic-core:

uv pip install --force-reinstall --no-binary pydantic-core pydantic-core

或者直接重新安装mcp,让它自动处理依赖的重新编译:

uv pip install --force-reinstall --no-binary pydantic-core mcp==1.6.0

2. Python 3.13版本太新,兼容性还没跟上

Python 3.13是刚出的版本,不少第三方包的适配还没完全跟上,尤其是pydantic-core这类依赖底层扩展的包。如果上面的办法没用,你可以试试把Python版本降到3.12——毕竟3.12的生态支持已经很成熟了,在Dockerfile里调整Python版本后重新构建容器,再装依赖应该就能解决。

3. 检查虚拟环境或包路径是否正确

有时候uv安装的包路径没被当前Python环境识别,比如你没激活对应的虚拟环境。可以在Python交互窗口里跑这两行看看:

import sys
print(sys.path)

如果输出里找不到pydantic-core安装的目录,那要么是你没激活虚拟环境,要么得手动把包路径添加到sys.path里(不过更推荐前者,规范使用虚拟环境)。

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

火山引擎 最新活动