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

如何在JupyterLab中运行Shiny RMD文件?技术求助

解决Shiny RMD在JupyterLab中无法打开交互式页面的问题

问题现象

我的Shiny RMD文件在RStudio IDE中可正常运行,已设置runtime: shiny,配置如下:

title: "X"
runtime: shiny
output: 
  html_document:
    theme: flatly
    toc: yes
    toc_float:
      collapsed: true

在JupyterLab的.ipynb文件中执行以下命令:

%%bash
R -e "library(rmarkdown); rmarkdown::run('X.Rmd', shiny_args = list(launch.browser = TRUE))"

执行后仅输出:

Loading required package: shiny
Listening on http://127.0.0.1:3158

但无法正常打开交互式页面。


解决方案1:通过端口转发手动打开页面

JupyterLab环境中直接调用系统浏览器可能无法跳转,先关闭自动打开,再通过Jupyter的端口转发功能访问:

修改运行命令:

%%bash
R -e "library(rmarkdown); rmarkdown::run('X.Rmd', shiny_args = list(launch.browser = FALSE, port = 3158))"

然后在JupyterLab中操作:

  • 点击左侧栏的「Running」标签(或通过菜单File > Running Terminals and Kernels)
  • 找到对应R进程,点击端口3158旁的「Open in New Tab」,即可打开交互式页面。

解决方案2:使用IRkernel直接运行R代码

安装IRkernel后,直接在Jupyter的R代码块中运行,避免bash环境的限制:

  1. 先安装并配置IRkernel:
install.packages('IRkernel')
IRkernel::installspec()
  1. 在.ipynb中新建R代码块,执行:
library(rmarkdown)
# 适配JupyterLab的浏览器打开逻辑
rmarkdown::run("X.Rmd", shiny_args = list(launch.browser = function(url) {
  browseURL(url)
}))

解决方案3:将RMD编译为独立Shiny应用

先把Shiny RMD转换为独立的Shiny应用文件,再运行:

  1. 在R环境中执行编译命令:
rmarkdown::render("X.Rmd", output_format = "shiny::shiny_app")

这会生成X.html文件,然后在JupyterLab中运行:

%%bash
R -e "shiny::runApp('X.html', launch.browser = FALSE, port = 3158)"

同样通过JupyterLab的端口转发打开页面。


额外注意事项

  • 确保JupyterLab的端口转发功能正常,无防火墙或网络设置阻止端口访问
  • 检查RMD文件中的数据路径(如XXX.csv、XXX.xlsx)为相对路径,避免Jupyter环境下找不到文件
  • 确认所有依赖包(shiny、rmarkdown、plotly等)在Jupyter使用的R环境中已正确安装

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 02:47:06