1. 问题说明

当使用docker部署coze-studio之后,运行的功能都挺正常,但是在工作流中使用代码节点的时候,测试代码节点则会出现如下的报错:

"Function execution failed, please check the code of the function. Detail: exec failed, stdout=, stderr=\u001b[0m\u001b[32mDownload\u001b[0m https://jsr.io/@langchain/pyodide-sandbox/meta.json\n\u001b[0m\u001b[1m\u001b[31merror\u001b[0m: JSR package manifest for '@langchain/pyodide-sandbox' failed to load. Import 'https://jsr.io/@langchain/pyodide-sandbox/meta.json' failed.\n, sandbox_err="

根据这个错误来看,似乎是运行的Python无法下载pyodide-sandbox包……

2. 问题分析

对应的问题也在github issue上也有讨论,结论就是代码中的配置的包路径在镜像中无法访问,也可以按照上面的说法先进入容器内部看一下是否有正常的输出。

首先,使用命令查看容器的id:

docker ps | grep coze-server

然后看到这样的输出:

611f64b33d46   cozedev/coze-studio-server:latest                "/app/opencoze"           3 days ago     Up 29 minutes         8888/tcp                                          coze-server

记住最前面这个id,我这里就是611f64b33d46

然后我们进入到容器内部:

docker exec -it 611f64b33d46 sh

然后输入命令,是否和我一样的输出:

# 命令
deno run -A jsr:@eyurtsev/pyodide-sandbox -c "print('Hello, World!')"

# 输出
{"stdout":"Hello, World!","stderr":null,"result":null,"success":true,"sessionMetadata":{"created":"2025-11-04T02:32:09.088Z","lastModified":"2025-11-04T02:32:09.152Z","packages":[]}}

如果和我一样的输出,那就继续操作,如果是其他的输出,需要去解决网络问题了,后面的内容可以不用看了……

3. 问题解决

首先我也按照github issue上讨论的方案进行处理,也就是修改代码,修改的代码是:

backend/infra/coderunner/impl/script/sandbox.py的第10 行

修改为:

PKG_NAME = "jsr:@eyurtsev/pyodide-sandbox"

然后我重新打包镜像,发现仍然报错,所以不行。

所以,我的想法是进入到容器内部进行代码的修改。

还是上述的命令来进入容器:

docker exec -it 611f64b33d46 sh

然后,我们直接使用命令打开sandbox.py文件:

vi sandbox.py

然后修改第10行为如下的内容:

PKG_NAME = "jsr:@eyurtsev/pyodide-sandbox"

退出vi的编辑之后,再使用命令退出容器:

exit

之后我们重启容器:

docker restart 611f64b33d46

这个时候再打开我们的工作流,测试代码节点,发现一切正常了,完事!

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐