部署Shiny应用到shinyapps服务器提示shiny包未找到如何解决
Shiny部署报错排查修复步骤
- 先修复
rsconnect::appDependencies()执行报错- 确认当前R的工作目录为Shiny应用的根目录,目录下必须存在
app.R或ui.R+server.R的应用入口文件,工作目录错误会导致依赖检测函数无法读取应用代码,生成结构异常的依赖表触发列选择报错。 - 升级rsconnect到官方最新版本,执行命令:
install.packages("rsconnect"),旧版本rsconnect存在依赖检测的已知bug,会导致依赖表字段缺失。 - 升级完成后重新在应用根目录运行
rsconnect::appDependencies(),确认输出的依赖列表中包含shiny包。
- 确认当前R的工作目录为Shiny应用的根目录,目录下必须存在
- 修复shiny包依赖遗漏问题
- 在你的Shiny应用入口代码的最开头,显式添加
library(shiny)语句,不要仅通过shiny::前缀调用函数而不显式加载包,rsconnect的依赖检测逻辑对隐式调用的识别存在概率遗漏,会导致部署时没有将shiny包纳入服务器安装列表,触发访问时的包不存在报错。 - 若依赖检测仍不生效,可在应用根目录手动创建
DESCRIPTION文件,明确标注依赖,示例内容如下:
Package: myshinyapp Title: 自定义应用名称 Version: 0.1 Imports: shiny Encoding: UTF-8 - 在你的Shiny应用入口代码的最开头,显式添加
- 重新部署应用
清除本地旧的部署缓存后再重新部署,执行命令:rsconnect::forgetDeployment() rsconnect::deployApp()
内容的提问来源于stack exchange,提问作者Hedi Ben Mustapha
相关产品推荐
相关产品推荐

