You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JupyterLab中运行Plumber API无法显示Swagger UI求助

问题原因及解决方法

原因分析

  • JupyterLab与RStudio运行环境差异:RStudio是桌面应用,能直接调用本地浏览器打开Swagger链接;而JupyterLab是基于浏览器的远程/容器化IDE,内核进程运行在后端,无法自动唤起本地浏览器弹窗。
  • 网络访问限制:若JupyterLab部署在远程服务器或容器中,直接访问127.0.0.1:5763仅能在服务器本地生效,本地浏览器无法直接连接;同时JupyterLab的安全策略会阻止内核自动发起外部链接跳转。
  • Swagger地址绑定冲突:代码中API绑定0.0.0.0(允许所有IP访问),但Swagger提示的是127.0.0.1,在非本地Jupyter环境下,这个地址无法被外部访问。

解决方法

  • 手动访问Swagger链接:
    复制提示中的http://127.0.0.1:5763/__docs__/到本地浏览器地址栏。如果是远程JupyterLab,先通过SSH做端口转发:

    ssh -L 5763:localhost:5763 你的服务器用户名@服务器IP
    

    转发完成后,本地浏览器访问http://localhost:5763/__docs__/即可。

  • 调整Plumber运行参数:
    修改运行代码,将Swagger的地址绑定到0.0.0.0,确保和API的host一致,同时关闭自动打开浏览器:

    plumber::plumb("MC_APIv1.1-Prod.R")$run(
      host = "0.0.0.0", 
      port = 5763,
      swagger = TRUE,
      swagger_url = "http://0.0.0.0:5763/__docs__/",
      openAPI = FALSE
    )
    

    之后手动访问对应的Swagger地址即可。

  • 使用JupyterLab扩展支持:
    安装jupyterlab-server-proxy扩展,让JupyterLab能直接在界面内托管Plumber服务:

    pip install jupyterlab-server-proxy
    

    重启JupyterLab后,运行Plumber代码,在左侧面板的"Launcher"中找到对应的Plumber服务入口,点击即可在JupyterLab内打开Swagger UI。

  • 检查端口占用:
    确认5763端口未被其他进程占用,Linux/macOS用以下命令查看:

    lsof -i :5763
    

    Windows用:

    netstat -ano | findstr :5763
    

    如果端口被占用,修改代码中的port参数为其他未使用的端口(比如5764)再运行。

内容的提问来源于stack exchange,提问作者ankit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 02:05:26