当前位置: 首页 > article >正文

dify-sandbox 使用python 虚拟环境本地开发

dify-sandbox 使用python 虚拟环境本地开发为啥使用虚拟环境环境准备启动服务验证相关接口为啥使用虚拟环境本地直接使用 pip install 提示错误信息要在系统范围内安装包建议使用apt install python3-xyz。系统范围的依赖不建议修改各开发环境之间依赖还是隔离开比较好各个环境可能需要不同版本的依赖包$ pipinstallhttpx error: externally-managed-environment × This environment is externally managed ╰─ToinstallPython packages system-wide, tryaptinstallpython3-xyz, where xyz is the package you are trying to install. If you wish toinstalla non-Debian-packaged Python package, create a virtual environment using python3-mvenv path/to/venv. Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make sure you have python3-full installed. If you wish toinstalla non-Debian packaged Python application, it may be easiest to use pipxinstallxyz,whichwill manage a virtual environmentforyou. Make sure you have pipx installed. See /usr/share/doc/python3.12/README.venvformoreinformation. note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages. hint: See PEP668forthe detailed specification.环境准备创建虚拟环境$ python3-mvenv .dify-sandbox-python3激活虚拟环境$source.dify-sandbox-python3/bin/activate检查 python 命令$ python Python3.12.3(main, Mar32026,12:15:18)[GCC13.3.0]on linux Typehelp,copyright,creditsorlicenseformoreinformation.查看相关pip 配置$ pip config list global.index-urlhttps://mirrors.ustc.edu.cn/pypi/simple获取 python 默认加载模块路径$ python Python3.12.3(main, Mar32026,12:15:18)[GCC13.3.0]on linux Typehelp,copyright,creditsorlicenseformoreinformation.importsysprint(sys.path)[,/usr/lib/python312.zip,/usr/lib/python3.12,/usr/lib/python3.12/lib-dynload,/home/scd/code/go/dify/.dify-sandbox-python3/lib/python3.12/site-packages]修改 dify-sandbox 的 conf/config.yaml将第5步获取的模块路径复制到 python_lib_pathapp:port:8194debug:Truekey:dify-sandboxmax_workers:4max_requests:50worker_timeout:5python_path:pythonnodejs_path:/usr/local/node-v24.14.1/bin/nodepython_lib_path:-/usr/lib/python3.12-/home/scd/code/go/dify/.dify-sandbox-python3/lib/python3.12/site-packages-/usr/lib/x86_64-linux-gnu-/etc/ssl/certs/ca-certificates.crt-/etc/nsswitch.conf-/etc/hosts-/etc/resolv.conf-/etc/localtime-/usr/share/zoneinfo-/etc/timezoneenable_network:True# please make sure there is no network risk in your environmentenable_preload:False# please keep it as False for security purposeslog_path:./logs# path to store log files, default is ./logsallowed_syscalls:# please leave it empty if you have no idea how seccomp worksproxy:socks5:http:https:启动服务验证相关接口清除sandbox-python相关的 lib 包避免影响验证环境是否可行# rm -rf /var/sandbox/sandbox-python/*激活虚拟环境启动服务# source ../.dify-sandbox-python3/bin/activate# ./main{time:2026-04-16T22:19:35.06861774308:00,level:INFO,msg:initializing nodejs runner environment}{time:2026-04-16T22:19:35.12430063708:00,level:INFO,msg:nodejs runner environment initialized}{time:2026-04-16T22:19:35.12527312208:00,level:INFO,msg:initializing python runner environment}{time:2026-04-16T22:19:35.12668658208:00,level:INFO,msg:python runner environment initialized}{time:2026-04-16T22:19:35.12714741308:00,level:INFO,msg:network has been enabled}{time:2026-04-16T22:19:35.12718986508:00,level:INFO,msg:config init success}{time:2026-04-16T22:19:35.12725655608:00,level:INFO,msg:runner dependencies init success}[GIN-debug][WARNING]Creating an Engine instance with the Logger and Recovery middleware already attached.[GIN-debug][WARNING]Runningindebugmode. Switch toreleasemodeinproduction. - using env:exportGIN_MODErelease - using code: gin.SetMode(gin.ReleaseMode)[GIN-debug]GET /health --github.com/langgenius/dify-sandbox/internal/controller.Setup.func1(5handlers){time:2026-04-16T22:19:35.12733115908:00,level:INFO,msg:setting max requests,max:50}{time:2026-04-16T22:19:35.12734976308:00,level:INFO,msg:setting max workers,max:4}[GIN-debug]POST /v1/sandbox/run --github.com/langgenius/dify-sandbox/internal/controller.RunSandboxController(9handlers)[GIN-debug]GET /v1/sandbox/dependencies --github.com/langgenius/dify-sandbox/internal/controller.GetDependencies(6handlers)[GIN-debug]POST /v1/sandbox/dependencies/update --github.com/langgenius/dify-sandbox/internal/controller.UpdateDependencies(6handlers)[GIN-debug]GET /v1/sandbox/dependencies/refresh --github.com/langgenius/dify-sandbox/internal/controller.RefreshDependencies(6handlers)[GIN-debug][WARNING]You trusted all proxies, this is NOT safe. We recommend you toseta value. Please check https://pkg.go.dev/github.com/gin-gonic/gin#readme-don-t-trust-all-proxies for details.[GIN-debug]Listening and serving HTTP on :8194{time:2026-04-16T22:19:35.12744400408:00,level:INFO,msg:installing python dependencies}{time:2026-04-16T22:19:35.12752681108:00,level:INFO,msg:python dependencies installed}{time:2026-04-16T22:19:35.12753982808:00,level:INFO,msg:initializing python dependencies sandbox}运行测试接口test_dify_sandbox.sh 脚本内容$cattest_dify_sandbox.sh#!/bin/bashREQUEST_HOSThttp://localhost:8194X_API_KEYdify-sandbox# 健康检查接口echo健康检查接口:/healthcurl${REQUEST_HOST}/health# Python3 示例echoechoPython3 运行代码:/v1/sandbox/runcurl-XPOST${REQUEST_HOST}/v1/sandbox/run\-HContent-Type: application/json\-HX-Api-Key:${X_API_KEY}\-d{ language: python3, code: import json\nperson {\name\: \John\, \age\: 30, \city\: \New York\}\njson_str json.dumps(person)\nprint(json_str), preload: , enable_network: false }echoechoNode.js 运行代码:/v1/sandbox/run# Node.js 示例curl-XPOST${REQUEST_HOST}/v1/sandbox/run\-HContent-Type: application/json\-HX-Api-Key:${X_API_KEY}\-d{ language: nodejs, code: const person {name: \John\, age: 30, city: \New York\};\nconst jsonString JSON.stringify(person);\nconsole.log(jsonString);, preload: , enable_network: false }echoecho更新依赖 复制python_lib_path依赖:/v1/sandbox/dependencies/updatecurl-XPOST${REQUEST_HOST}/v1/sandbox/dependencies/update\-HContent-Type: application/json\-HX-Api-Key:${X_API_KEY}\-d{language: python3}echoecho刷新依赖dependencies/python-requirements.txt依赖:/v1/sandbox/dependencies/refreshcurl-XGET${REQUEST_HOST}/v1/sandbox/dependencies/refresh\-HContent-Type: application/json\-HX-Api-Key:${X_API_KEY}\-d{language: python3}echoecho获取已安装依赖:/v1/sandbox/dependenciescurl-XGET${REQUEST_HOST}/v1/sandbox/dependencies\-HContent-Type: application/json\-HX-Api-Key:${X_API_KEY}\-d{language: python3}echo执行结果$shtest_dify_sandbox.sh 健康检查接口:/healthokPython3 运行代码:/v1/sandbox/run{code:0,message:success,data:{error:,stdout:{\name\:\John\,\age\: 30,\city\:\New York\}\n}}Node.js 运行代码:/v1/sandbox/run{code:0,message:success,data:{error:,stdout:{\name\:\John\,\age\:30,\city\:\New York\}\n}}更新依赖 复制python_lib_path依赖:/v1/sandbox/dependencies/update{code:0,message:success,data:{}}刷新依赖dependencies/python-requirements.txt依赖:/v1/sandbox/dependencies/refresh{code:0,message:success,data:{dependencies:[{name:jinja2,version:},{name:httpx,version:},{name:requests,version:}]}}获取已安装依赖:/v1/sandbox/dependencies{code:0,message:success,data:{dependencies:[{name:jinja2,version:},{name:httpx,version:},{name:requests,version:}]}}

相关文章:

dify-sandbox 使用python 虚拟环境本地开发

dify-sandbox 使用python 虚拟环境本地开发为啥使用虚拟环境环境准备启动服务,验证相关接口为啥使用虚拟环境 本地直接使用 pip install 提示错误信息,要在系统范围内安装包,建议使用 apt install python3-xyz 。系统范围的依赖不建议修改&a…...

HideMockLocation完整技术解析:Android位置模拟检测的终极解决方案

HideMockLocation完整技术解析:Android位置模拟检测的终极解决方案 【免费下载链接】HideMockLocation Xposed module to hide the mock location setting. 项目地址: https://gitcode.com/gh_mirrors/hi/HideMockLocation HideMockLocation是一款基于Xposed…...

2026年,别让AIGC检测绊住你毕业!百考通AI查重降重全攻略

高效、安全、省心,你的论文通关搭档 又到一年毕业季,当你在图书馆熬了无数个夜,终于为论文画上最后一个句号时,真正的挑战可能才刚刚开始。 “重复率明明改下来了,导师却说AI痕迹太重,打回重写&#xff01…...

自然语言生成技术

自然语言生成技术:让机器学会"说话"的艺术 在人工智能飞速发展的今天,自然语言生成技术(NLG)正悄然改变我们与机器的交互方式。这项技术能让计算机像人类一样组织语言,从简单的天气预报播报到复杂的新闻报道…...

视觉模型在生产环境中失败的主要原因

计算机视觉现已成为大多数行业广泛采用的关键人工智能技术,其核心价值在于使机器能够解释和分析视觉数据,进而执行从医学成像、机器人技术到制造业自动化、零售智能化等各类实际任务。​ 然而,构建可靠的计算机视觉系统并非易事。这一过程通常需要开发视觉 AI 模型 —— 该…...

别再到处找了!Win7/Win10/Win Server各版本.NET 4.7.2离线安装包官方与备用下载全指南

彻底解决.NET 4.7.2安装难题:Windows全版本离线包获取与部署实战手册 还在为不同Windows系统寻找匹配的.NET 4.7.2离线安装包而头疼?这份指南将为你节省数小时的搜索时间。无论你使用的是老旧的Windows 7 SP1还是最新的服务器系统,我们都准备…...

利用 Global Speed 实现视频学习效率倍增的实战策略

视频学习已成为当代知识获取的主流方式之一。 从在线课程到技术讲座,从学术会议到行业分享,视频内容以直观生动的形式承载知识传播使命。 然而,被动接收式的观看模式往往导致学习效率低下。 Global Speed 视频倍速插件为解决这一问题提供了技…...

2026届最火的十大AI学术平台实测分析

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 当下,人工智能内容生成技术被广泛应用,在此情形下,降低AI…...

如何快速检测Windows热键冲突:Hotkey Detective完整解决方案指南

如何快速检测Windows热键冲突:Hotkey Detective完整解决方案指南 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective …...

WeChatMsg完全指南:3步永久保存你的微信记忆,让聊天记录成为个人数字资产

WeChatMsg完全指南:3步永久保存你的微信记忆,让聊天记录成为个人数字资产 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode…...

AIGC内容审核新篇章:MogFace-large实现图像中违规人脸检测

AIGC内容审核新篇章:MogFace-large实现图像中违规人脸检测 最近和几个做内容平台的朋友聊天,他们都在为一个事儿头疼:用户用AI生成的图片越来越多了,里面的人脸五花八门,怎么快速、准确地判断哪些是合规的&#xff0c…...

Matlab绘图进阶:xlabel函数从基础到高阶的实用指南

1. xlabel函数基础入门 第一次接触Matlab绘图时,我盯着那个默认的"X轴"标签看了好久,总觉得它太单调了。后来发现xlabel这个宝藏函数,简直打开了新世界的大门。xlabel最基本的功能就是给x轴加标签,但千万别小看这个简单…...

Zotero Reference:3分钟学会PDF文献参考文献自动提取的神器

Zotero Reference:3分钟学会PDF文献参考文献自动提取的神器 【免费下载链接】zotero-reference PDF references add-on for Zotero. 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-reference 还在为手动整理参考文献而烦恼吗?Zotero Refer…...

免费开源PS Vita内容管理终极指南:如何用QCMA轻松管理你的掌机数据

免费开源PS Vita内容管理终极指南:如何用QCMA轻松管理你的掌机数据 【免费下载链接】qcma Cross-platform content manager assistant for the PS Vita 项目地址: https://gitcode.com/gh_mirrors/qc/qcma QCMA(Quality Content Manager Assistan…...

从LVDS接口到Ultrascale SelectIO:IDDRE1与ODDRE1原语的实战仿真解析

1. 从LVDS到Ultrascale SelectIO:为什么需要IDDRE1和ODDRE1? 第一次接触Xilinx Ultrascale系列FPGA的SelectIO资源时,我被官方文档里密密麻麻的原语列表搞得头晕眼花。直到项目逼着我必须实现一个800Mbps的LVDS接收接口,才真正静下…...

基于TDC-GPX的多通道高精度时间测量系统设计与激光雷达应用

1. TDC-GPX芯片深度解析 第一次接触TDC-GPX芯片时,我被它81皮秒的时间分辨率震惊到了——这相当于光在真空中只传播了2.4厘米所需的时间。这款德国ACAM公司的旗舰产品确实配得上"时间数字转换器中的瑞士军刀"这个称号。让我带你从工程师视角拆解这颗神奇的…...

SpringBoot缓存机制及常用注解

一、SpringBoot缓存到底是什么?说白了,缓存就是“临时存储”的地方。我们程序里,有些数据经常被查询(比如用户信息、商品列表),如果每次查询都去访问数据库,会很慢,还会增加数据库压…...

GBase 8a数据库双活容灾方案之应用场景及案例解析

南大通用GBase 8a数据库(gbase database)基于列存引擎与分片同步机制,构建了完整的双活容灾方案。核心同步工具GVR依托sync_clientsync_server组件,实现主备集群间增量数据毫秒级同步,点对点速度达450MB/s,支持同城双活…...

GBase 8a数据库双活容灾方案之GVR其他功能与特性

南大通用(gbase database)可视化集群双活同步工具软件(GBase Visio Rsynctool),是GBASE南大通用自主研发的、专门适用于GBase 8a MPP Cluster的集群间同步工具。其他功能介绍数据校验:支持基于表 SCN 号的对比原理&…...

【项目博客】系统基础框架和依赖模块的搭建

在完成系统设计之后,本项目进入工程实现阶段。本阶段的重点是将前期确定的系统架构和技术路线落地为实际可运行的系统,各模块开始从设计转向具体实现,并逐步形成完整的运行环境。 在这一阶段中,项目完成了整体基础架构的搭建。前端…...

智能代码生成技术落地真相(2026企业级实测白皮书首发)

第一章:智能代码生成技术落地真相(2026企业级实测白皮书首发) 2026奇点智能技术大会(https://ml-summit.org) 本章基于覆盖金融、制造、政务三大垂直领域的17家头部企业的实测数据,披露智能代码生成技术在真实生产环境中的性能边…...

Smithbox游戏修改工具:从魂系列到艾尔登法环的终极定制指南

Smithbox游戏修改工具:从魂系列到艾尔登法环的终极定制指南 【免费下载链接】Smithbox Smithbox is a modding tool for Elden Ring, Armored Core VI, Sekiro, Dark Souls 3, Dark Souls 2, Dark Souls, Bloodborne and Demons Souls. 项目地址: https://gitcode…...

路径规划算法完整指南:从零到精通的终极学习路径

路径规划算法完整指南:从零到精通的终极学习路径 【免费下载链接】PathPlanning Common used path planning algorithms with animations. 项目地址: https://gitcode.com/gh_mirrors/pa/PathPlanning 无论你是机器人工程师、自动驾驶开发者还是游戏AI程序员…...

BataBinding

DataBindingViiewModel、LiveData、ViewDataBinding三者结合,DataBinding能够让UI自动响应数据的变化,而不需要手动更新UI。方式如下:在ViiewModel中分别使用LiveData存储各项数据,将ViewMode定义设置为ViewDataBinding中的变量&a…...

如何彻底隐藏Windows音量弹窗:3步实现纯净桌面体验

如何彻底隐藏Windows音量弹窗:3步实现纯净桌面体验 【免费下载链接】HideVolumeOSD Hide the Windows 10 volume bar 项目地址: https://gitcode.com/gh_mirrors/hi/HideVolumeOSD 你是否厌倦了在全屏游戏、视频会议或重要演示时,被突然弹出的Win…...

基于操作系统的键盘板显示程序(LPC2103版本)

/********************************** "31"班专用easyARM2103的uc/OS II模板********************************* ** 程序名称:dis_key_board ** 程序作者:L ** 修改日期: 2010-11-29 ** 程序版本:V1.0 ** 程序描述:操作…...

CY7C68013A固件烧录与EEPROM配置实战指南

1. CY7C68013A开发板基础认知 第一次拿到CY7C68013A开发板时,我对着这个火柴盒大小的模块研究了半天。作为Cypress的经典USB2.0控制器芯片,它最大的魅力在于同时支持高速(480Mbps)和全速(12Mbps)两种传输模…...

零基础也能搞定!Trae+MCP实战:从天气查询到Excel自动化,解锁AI协作新姿势

1. 为什么你需要Trae和MCP? 如果你经常需要处理天气数据查询、Excel表格整理这类重复性工作,或者想让不同AI工具协同完成复杂任务,TraeMCP的组合就是为你量身定制的解决方案。这就像给你的工作流程装上了"自动驾驶"系统——原本需要…...

别再死记硬背了!图解Linux进程内存布局:从vm_area_struct到你的程序运行

图解Linux进程内存布局:从vm_area_struct到程序运行的奥秘 刚接触Linux内存管理的开发者,是否经常被/proc/pid/maps里那些密密麻麻的地址范围搞得一头雾水?当我们调试程序时,看到"segmentation fault"错误却不知从何查起…...

Windows系统突破性解决方案:mac-precision-touchpad驱动让苹果触控板完美适配Windows系统

Windows系统突破性解决方案:mac-precision-touchpad驱动让苹果触控板完美适配Windows系统 【免费下载链接】mac-precision-touchpad Windows Precision Touchpad Driver Implementation for Apple MacBook / Magic Trackpad 项目地址: https://gitcode.com/gh_mir…...