You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

克隆DocQuery项目后出现ImportError:无法导入ModelField

解决ImportError: cannot import name 'ModelField' from 'pydantic.fields'问题

问题根源

ModelField是Pydantic v1.x的专属类,Pydantic v2.x已彻底移除该类并改用FieldInfo等替代接口。你指定pydantic==1.3未解决问题,大概率是项目依赖链中的其他包(比如docquery的间接依赖)强制安装了Pydantic v2.x版本,覆盖了你指定的旧版本。

修复步骤

  • 锁定兼容的Pydantic版本
    放弃过旧的pydantic==1.3,改用Pydantic v1的最新稳定版,同时通过约束文件强制环境使用该版本:

    1. 在项目根目录创建constraints.txt文件,写入:
      pydantic<2.0.0,>=1.10.0
      
    2. 执行安装命令:
      pip install -r requirements.txt -c constraints.txt
      
  • 手动清理并重装依赖
    先检查当前环境的Pydantic实际版本:

    pip show pydantic
    

    如果显示为v2.x,先卸载:

    pip uninstall -y pydantic
    

    再安装指定的兼容版本:

    pip install pydantic==1.10.13
    
  • 调整requirements.txt的依赖顺序
    将Pydantic的版本约束放在requirements.txt最顶部,确保优先安装,避免被后续依赖覆盖:

    pydantic<2.0.0
    torch
    transformers==[你的指定版本号]
    docquery
    
  • 用虚拟环境隔离依赖
    若以上方法无效,创建全新虚拟环境重新安装:

    python -m venv docquery-env
    # Windows激活环境
    docquery-env\Scripts\activate
    # Linux/macOS激活环境
    source docquery-env/bin/activate
    pip install -r requirements.txt
    

补充说明

docquery官方依赖配置未明确限制Pydantic的大版本范围,导致pip默认拉取最新的v2.x版本,进而触发导入错误。锁定Pydantic v1版本即可彻底解决该问题。

内容的提问来源于stack exchange,提问作者Khant Thu Linn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 07:27:13