Dify Sandbox 如何安装第三方库(matplotlib / numpy / pandas 通用方法)

在 Dify 的 Sandbox 中安装并使用第三方库(Numpy 为例)

在使用 Dify 进行应用开发的过程中,很多同学可能会遇到这样的问题:

在 Sandbox 中无法直接 pip install 新库,导致一些功能(比如绘图、数据分析)没法使用。
因为官方sandbox有很多关于权限的设置,那是一个更好的沙盒方案,但是个人实际使用过程中,Dify的代码节点完全是个人编辑,所以也不存在代码注入风险,希望有更大的权限,安装更多依赖包例如numpy>2.0,matplotlib,scikit-learn 减少一些看不懂的报错

本文记录了我成功在 Sandbox 中安装并使用 numpy 的完整过程,绝对可行,适合遇到类似需求的朋友参考。


1. 修改 docker-compose.yaml 配置

默认情况下,Dify 使用的是官方的 sandbox 镜像,不支持直接扩展库。

解决方法是 替换镜像

  1. 打开 docker-compose.yaml 文件
  2. 找到 sandbox 配置块
  3. 注释掉原有的 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 中的依赖,耐心等待即可

总结

整个流程的核心要点有三个:

  1. 替换 Sandbox 镜像为可扩展的版本
  2. python-requirements.txt 中声明依赖
  3. 删除旧镜像并重新启动

这样一来,Dify 的 Sandbox 环境就能像常规 Python 环境一样自由使用第三方库了 🚀


有问题欢迎评论区留言!🤞😉

相关推荐
运维行者_15 分钟前
Applications Manager中的Redis监控
大数据·服务器·数据库·人工智能·网络协议
吃好睡好便好39 分钟前
提取矩阵某一行或某一列元素
开发语言·人工智能·线性代数·算法·matlab·矩阵
AI数字化笔记3 小时前
【无标题】
人工智能
悦数图数据库3 小时前
图数据库选型指南 2026:从架构、性能、AI 适配三个维度看 悦数科技
数据库·人工智能·架构
北京耐用通信3 小时前
自动化工程师必修课:耐达讯自动化Modbus TCP转PROFIBUS协议转换的核心逻辑与应用
人工智能·物联网·网络协议·自动化·信息与通信
无忧智库3 小时前
某AI漫剧超级工厂AI绘画与分镜自动化生成流水线详细设计方案(WORD)
人工智能·ai作画·自动化
火山引擎开发者社区3 小时前
ArkClaw 全新升级,从 UI 到 Agent 协作全面进化
人工智能
Mininglamp_27183 小时前
会中 AI Skill 架构设计解析:3 种人设 × 7 种能力的技术实现
人工智能·语音识别·硬件·ai agent·skill
墨神谕4 小时前
人工智能(三)— 神经网络的训练
人工智能·神经网络·机器学习
RyFit4 小时前
Java + AI 实战:Spring AI 从入门到企业级落地
java·人工智能·spring