VSCode中运行Shiny App导致R终端冻结问题求助
VSCode运行Shiny应用终端冻结的排查方案
问题描述
此前使用RStudio,切换到VSCode后,运行任意Shiny应用(包括官方示例shiny::runExample("01_hello"))都会导致R终端会话冻结,无法输入任何内容,必须关闭并重新打开R终端才能恢复。终端输出如下:
r$> shiny::runExample("01_hello")
Loading required package: shiny
Warning: package 'shiny' was built under R version 4.1.1Listening on http://127.0.0.1:4789
Browsing http://127.0.0.1:4789
排查与解决步骤
- 更新R插件:确保VSCode的R Extension是最新版本,旧版本可能存在Shiny运行的兼容性问题,在扩展面板找到R插件点击更新。
- 修改Shiny启动参数:默认启动模式会占用终端主线程,添加
launch.browser = FALSE参数避免阻塞:
运行后复制终端输出的链接手动打开浏览器,此时终端可正常输入。shiny::runExample("01_hello", launch.browser = FALSE) - 调整终端设置:
- 打开VSCode设置(快捷键
Ctrl+,),搜索对应系统的终端启动参数(如Windows的terminal.integrated.shellArgs.windows),移除可能导致阻塞的特殊参数。 - 切换终端类型,比如Windows下从PowerShell换为Command Prompt,Mac/Linux下从Zsh换为Bash,测试是否解决冻结。
- 打开VSCode设置(快捷键
- 重新安装Shiny包:终端提示Shiny基于R 4.1.1构建,若当前R版本差异较大,重新安装匹配版本的Shiny:
install.packages("shiny") - 排查扩展冲突:暂时禁用其他R相关扩展或终端增强类扩展,测试是否是扩展冲突导致冻结。
- 使用插件自带的运行功能:右键点击Shiny脚本,选择
Run Shiny App(若R插件提供该选项),替代手动在终端输入命令的方式。
临时应急方法
若以上方案未立即生效,运行Shiny后可按Ctrl+C强制终止进程,终端即可恢复输入,无需重启整个会话。
内容的提问来源于stack exchange,提问作者Soebomb
相关产品推荐
相关产品推荐

