在 Dify 的 Sandbox 中安装并使用第三方库(Numpy 为例)
在使用 Dify 进行应用开发的过程中,很多同学可能会遇到这样的问题:
在 Sandbox 中无法直接
pip install新库,导致一些功能(比如绘图、数据分析)没法使用。
因为官方sandbox有很多关于权限的设置,那是一个更好的沙盒方案,但是个人实际使用过程中,Dify的代码节点完全是个人编辑,所以也不存在代码注入风险,希望有更大的权限,安装更多依赖包例如numpy>2.0,matplotlib,scikit-learn 减少一些看不懂的报错
本文记录了我成功在 Sandbox 中安装并使用 numpy 的完整过程,绝对可行,适合遇到类似需求的朋友参考。
1. 修改 docker-compose.yaml 配置
默认情况下,Dify 使用的是官方的 sandbox 镜像,不支持直接扩展库。
解决方法是 替换镜像:
- 打开
docker-compose.yaml文件 - 找到
sandbox配置块 - 注释掉原有的
image,并改成如下内容:
yaml
image: svcvit/dify-sandbox-py:0.1.4

2. 添加所需的依赖库
进入 Dify 的依赖管理目录:
volumes/sandbox/dependencies/python-requirements.txt
在该文件中添加你需要的第三方库,例如:
numpy

📌 注意事项:
- 可以同时写多个库,每行一个
- 建议写上版本号,例如
numpy==2.3.3,避免版本冲突
3. 删除原有 Sandbox 镜像并重新拉取
配置修改后,需要让 Docker 重新拉取新的镜像,否则依然会走旧的缓存。
方式一:命令行操作
bash
# 停止容器
docker compose down
# 删除旧镜像
docker rmi <旧的 sandbox 镜像 ID 或 名称>
# 重新启动并拉取
docker compose up -d
方式二:如果你不熟悉命令行,可以直接在 Docker Desktop 软件里删除旧镜像容器,再点击启动就会重新拉取镜像。

⚠️ 如果你在国内环境,可能拉取镜像失败,需要:
- 开启 VPN
- 或者配置镜像源(例如阿里云加速器)
🔧 小提示:如果 python-requirements.txt 安装失败
在部分情况下(比如依赖源超时、镜像缓存问题),可能会发现库没有被正确安装。这时可以进入 Sandbox 容器内部,手动使用 pip install:
bash
docker exec -it docker-sandbox-1 /bin/bash
pip install numpy
4. 验证库是否安装成功
在 Dify 的代码节点 中,直接调用 numpy 输出版本信息:
python
import numpy as np
def main(arg1: str) -> dict:
arg1 = "numpy version:"+np.__version__
return {"result": arg1}

如果能正常输出,说明你的 Sandbox 已经可以使用第三方库了 🎉
5. 常见问题与排查
- 镜像拉取失败 → 尝试 VPN 或换国内源
- 库未生效 → 确认是否删除旧镜像,否则
docker-compose会直接复用缓存 - 安装时间长 → 因为每次都会在容器内重新安装
python-requirements.txt中的依赖,耐心等待即可
总结
整个流程的核心要点有三个:
- 替换 Sandbox 镜像为可扩展的版本
- 在
python-requirements.txt中声明依赖 - 删除旧镜像并重新启动
这样一来,Dify 的 Sandbox 环境就能像常规 Python 环境一样自由使用第三方库了 🚀
有问题欢迎评论区留言!🤞😉