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

Windows环境下LangChain导入UnstructuredPDFLoader报ValueError求助

问题描述
  • 运行环境:Windows系统,Python 3.11.3,LangChain 0.0.166
  • 触发操作:执行代码from langchain.document_loaders import UnstructuredPDFLoader
  • 报错信息:ValueError: 'not' is not a valid parameter name
  • 补充说明:曾注意到FastAPI有类似问题,但本次报错的栈追踪中未出现该依赖,且本地未安装FastAPI

完整报错栈追踪:

Traceback (most recent call last):
  File "<frozen importlib._bootstrap>", line 1178, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1128, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "C:\Users\Student\Anaconda3\envs\RL\Lib\site-packages\langchain\__init__.py", line 6, in <module>
    from langchain.agents import MRKLChain, ReActChain, SelfAskWithSearchChain
  File "C:\Users\Student\Anaconda3\envs\RL\Lib\site-packages\langchain\agents\__init__.py", line 2, in <module>
    from langchain.agents.agent import (
  File "C:\Users\Student\Anaconda3\envs\RL\Lib\site-packages\langchain\agents\agent.py", line 15, in <module>
    from langchain.agents.tools import InvalidTool
  File "C:\Users\Student\Anaconda3\envs\RL\Lib\site-packages\langchain\agents\tools.py", line 8, in <module>
    from langchain.tools.base import BaseTool, Tool, tool
  File "C:\Users\Student\Anaconda3\envs\RL\Lib\site-packages\langchain\tools\__init__.py", line 25, in <module>
    from langchain.tools.openapi.utils.api_models import APIOperation
  File "C:\Users\Student\Anaconda3\envs\RL\Lib\site-packages\langchain\tools\openapi\utils\api_models.py", line 6, in <module>
    from openapi_schema_pydantic import MediaType, Parameter, Reference, RequestBody, Schema
  File "C:\Users\Student\Anaconda3\envs\RL\Lib\site-packages\openapi_schema_pydantic\__init__.py", line 3, in <module>
    from .v3 import *
  File "C:\Users\Student\Anaconda3\envs\RL\Lib\site-packages\openapi_schema_pydantic\v3\__init__.py", line 1, in <module>
    from .v3_1_0 import *
  File "C:\Users\Student\Anaconda3\envs\RL\Lib\site-packages\openapi_schema_pydantic\v3\v3_1_0\__init__.py", line 9, in <module>
    from .open_api import OpenAPI
  File "C:\Users\Student\Anaconda3\envs\RL\Lib\site-packages\openapi_schema_pydantic\v3\v3_1_0\open_api.py", line 5, in <module>
    from .components import Components
  File "C:\Users\Student\Anaconda3\envs\RL\Lib\site-packages\openapi_schema_pydantic\v3\v3_1_0\components.py", line 7, in <module>
    from .header import Header
  File "C:\Users\Student\Anaconda3\envs\RL\Lib\site-packages\openapi_schema_pydantic\v3\v3_1_0\header.py", line 3, in <module>
    from .parameter import Parameter
  File "C:\Users\Student\Anaconda3\envs\RL\Lib\site-packages\openapi_schema_pydantic\v3\v3_1_0\parameter.py", line 6, in <module>
    from .media_type import MediaType
  File "C:\Users\Student\Anaconda3\envs\RL\Lib\site-packages\openapi_schema_pydantic\v3\v3_1_0\media_type.py", line 8, in <module>
    from .schema import Schema
  File "C:\Users\Student\Anaconda3\envs\RL\Lib\site-packages\openapi_schema_pydantic\v3\v3_1_0\schema.py", line 10, in <module>
    class Schema(BaseModel):
  File "C:\Users\Student\Anaconda3\envs\RL\Lib\site-packages\pydantic\main.py", line 292, in __new__
    cls.__signature__ = ClassAttribute('__signature__', generate_model_signature(cls.__init__, fields, config))
                                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Student\Anaconda3\envs\RL\Lib\site-packages\pydantic\utils.py", line 258, in generate_model_signature
    merged_params[param_name] = Parameter(
                                ^^^^^^^^^^
  File "C:\Users\Student\Anaconda3\envs\RL\Lib\inspect.py", line 2722, in __init__
    raise ValueError('{!r} is not a valid parameter name'.format(name))
ValueError: 'not' is not a valid parameter name
python-BaseException
解决方案

从栈追踪可看出,问题出在openapi_schema_pydantic库的Schema类定义中,生成了名为not的参数(Python关键字),而Python 3.11的inspect模块不允许关键字作为参数名。以下是解决办法:

  • 升级pydantic到兼容Python 3.11的版本,推荐安装>=1.10.7或2.x系列版本:
    pip install --upgrade pydantic
    
  • 升级openapi_schema_pydantic到最新版本,该库后续版本已修复关键字参数命名问题:
    pip install --upgrade openapi_schema_pydantic
    
  • 升级LangChain到较新版本,新版本LangChain依赖的openapi_schema_pydantic通常已更新:
    pip install --upgrade langchain
    
  • 若临时无法升级依赖,可手动修改openapi_schema_pydantic的schema.py文件,将not字段重命名为not_(注意同步修改相关引用),但该方法仅作临时应急,不推荐长期使用。

内容的提问来源于stack exchange,提问作者A_Arnold

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 00:07:05