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

Google Cloud函数中非main文件导入pydantic遇ModuleNotFoundError求助

问题:Google Cloud函数部署本地fork的langchain库时触发pydantic ModuleNotFoundError

我尝试在Google Cloud函数中引入本地fork的langchain库(命名为langchain_local),但部署时该库内的文件导入pydantic时触发ModuleNotFoundError。我的requirements.txt已包含pydantic>=1.9.1,main.py中直接导入pydantic无异常,但langchain_local的tools.py等非入口文件导入pydantic时报错。

相关文件及信息:

requirements.txt内容:

pinecone-client>=2.1.0
langchain>=0.0.63
pydantic>=1.9.1
SQLAlchemy>=1.4.40
requests>=2.28.2
numpy>=1.22.3

main.py关键代码:

from langchain_local.agents import Tool, AgentExecutor, ZeroShotAgent

报错触发代码(langchain_local/agents/tools.py):

from pydantic import BaseModel, root_validator

目录结构:

|langchain_local/
|---|__init__.py
|---|agents/
|---|---|__init__.py
|---|---|agent.py
|---|---|tools.py
|main.py
|requirements.txt

完整报错栈:

Traceback (most recent call last): File "/layers/google.python.pip/pip/bin/functions-framework", line 8, in  sys.exit(_cli()) File "/layers/google.python.pip/pip/lib/python3.8/site-packages/click/core.py", line 1128, in __call__ return self.main(*args, **kwargs) File "/layers/google.python.pip/pip/lib/python3.8/site-packages/click/core.py", line 1053, in main rv = self.invoke(ctx) File "/layers/google.python.pip/pip/lib/python3.8/site-packages/click/core.py", line 1395, in invoke return ctx.invoke(self.callback, **ctx.params) File "/layers/google.python.pip/pip/lib/python3.8/site-packages/click/core.py", line 754, in invoke return __callback(*args, **kwargs) File "/layers/google.python.pip/pip/lib/python3.8/site-packages/functions_framework/_cli.py", line 37, in _cli app = create_app(target, source, signature_type) File "/layers/google.python.pip/pip/lib/python3.8/site-packages/functions_framework/__init__.py", line 288, in create_app spec.loader.exec_module(source_module) File "", line 843, in exec_module File "", line 219, in _call_with_frames_removed File "/workspace/main.py", line 1, in  from langchain_local.agents import Tool, AgentExecutor, ZeroShotAgent File "/workspace/langchain_local/__init__.py", line 5, in  from langchain_local.agents import MRKLChain, ReActChain, SelfAskWithSearchChain File "/workspace/langchain_local/agents/__init__.py", line 2, in  from langchain_local.agents.agent import Agent, AgentExecutor File "/workspace/langchain_local/agents/agent.py", line 8, in  from langchain_local.agents.tools import Tool File "/workspace/langchain_local/agents/tools.py", line 4, in  from pydantic import BaseModel, root_validator ModuleNotFoundError: No module named 'pydantic'

可能的原因及解决办法

1. 依赖安装异常或版本冲突

Google Cloud Functions部署时会在容器环境重新安装依赖,可能存在版本冲突导致pydantic未成功安装:

  • 尝试将requirements.txt中的pydantic指定为具体兼容版本,比如pydantic==1.10.12,避免模糊版本带来的兼容问题;
  • 部署时添加--verbosity debug参数查看依赖安装日志,确认pydantic是否被正确安装。

2. 本地模块的Python路径问题

本地langchain_local模块的导入路径可能未被Cloud Functions的运行环境正确识别:

  • 在main.py开头添加路径配置,确保本地模块所在目录被加入Python路径:
    import sys
    from pathlib import Path
    sys.path.append(str(Path(__file__).parent))
    

3. 运行时Python版本兼容性

报错栈显示运行环境为Python3.8,虽然pydantic>=1.9.1支持Python3.8,但可尝试更换Cloud Functions的Python运行时版本(如3.9或3.10),排查是否存在隐藏的版本兼容问题。

4. 依赖安装顺序影响

langchain本身依赖pydantic,可能因安装顺序导致版本冲突:

  • 将pydantic>=1.9.1移至requirements.txt的最顶部,确保优先安装pydantic。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 17:31:57