Dify沙箱需通过python-requirements.txt注入pandas等第三方库:确认使用支持依赖注入的镜像,创建并填写带精确版本号的依赖文件,配置国内pip源,重启服务后验证导入及实际功能。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

在Dify工作流的代码执行节点中调用pandas、PyMySQL等第三方库时,直接import会报ModuleNotFoundError,这是因为沙箱环境默认不包含这些包,必须通过依赖打包机制将库注入运行时。
确认沙箱镜像是否支持自定义依赖
进入Dify本地部署目录下的dify/docker/docker-compose.yaml文件,搜索sandbox服务块。检查image:字段值是否为langgenius/dify-sandbox系列镜像(如langgenius/dify-sandbox:0.2.12)。【若使用的是官方原版镜像,则必须走requirements.txt路径;若已替换为带py后缀的定制镜像(如svcvit/dify-sandbox-py:0.1.4),则跳过本阶段】
不是所有镜像都支持自动读取python-requirements.txt。只有明确标注支持Python依赖注入的镜像才启用该机制。
准备并写入依赖清单文件
定位到路径:dify/docker/volumes/sandbox/dependencies/python-requirements.txt。
如果该文件不存在,请手动创建整个目录结构:dify/docker/volumes/sandbox/dependencies/,再新建空文件python-requirements.txt。
用文本编辑器打开该文件,按行写入所需库名,强烈建议指定精确版本号——不加版本号可能导致安装失败或行为异常:
numpy==2.2.6
pandas==2.3.2
PyMySQL==1.1.2
requests==2.31.0
注意:每行只能写一个包,不能有空行或中文注释;版本号用双等号==锁定,避免pip升级冲突。
配置国内镜像源加速安装(可选但推荐)
打开dify/docker/volumes/sandbox/conf/config.yaml文件。
在根层级添加或修改字段:
python_pip_mirror_url: "https://pypi.tuna.tsinghua.edu.cn/simple/"
该配置仅对沙箱容器内pip install生效,不影响宿主机pip源。不配置也能装,但国内网络下可能超时失败。
重启沙箱服务使依赖生效
第一步:停止全部容器
cd dify/docker && docker compose down
第二步:重新拉起服务(含沙箱)
docker compose up -d
第三步:等待约20秒,让沙箱容器完成pip install流程。可通过docker logs -f dify-sandbox-1实时观察安装日志,看到Successfully installed xxx即表示成功。
在代码节点中验证导入
方法一:基础验证
新建工作流 → 添加“代码执行”节点 → 语言选Python3 → 输入以下代码:
import pandas as pd
import pymysql
print("✅ pandas version:", pd.__version__)
print("✅ pymysql version:", pymysql.VERSION)
点击运行,输出两行带版本号的成功信息即代表导入成功。
方法二:触发真实调用(防假成功)
某些镜像存在缓存机制,仅import不报错不代表能用。务必补测一次实际功能,例如:
import pandas as pd
df = pd.DataFrame({'a': [1,2], 'b': [3,4]})
result = df.to_dict('records')
return {'data': result}
若返回{'data': [{'a': 1, 'b': 3}, {'a': 2, 'b': 4}]},说明pandas已真正可用。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!











