部署到shinyapps.io时出错

时间:2018-04-08 14:20:43

标签: r shiny

以下是我收到的错误:

Loading required package: tmap
Warning in library(package, lib.loc = lib.loc, character.only = TRUE, logical.return = TRUE,  :
  there is no package called ‘tmap’
Installing package into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)
Warning in install.packages(p) :
  'lib = "/usr/local/lib/R/site-library"' is not writable
Error in value[[3L]](cond) : unable to install packages
Calls: local ... tryCatch -> tryCatchList -> tryCatchOne -> <Anonymous>
Execution halted

以下是我的代码:

packages = c('tmap', 'sf', 'tidyverse', 'RColorBrewer', 'classInt', 
'raster', 'sp', 'REAT', 'SpatialAcc', 'shiny', 'leaflet', 'factoextra',  
'NbClust')

for(p in packages){
  if(!require(p, character.only = T)){
    install.packages(p)
  }
  library(p, character.only = T)
}

可能是什么问题?。

我尝试通过rstudio中的以下命令进行部署。

library(rsconnect)
rsconnect::deployApp('D:/student/mypath')

1 个答案:

答案 0 :(得分:1)

问题是shinyapps.io不允许您在其服务器上安装R软件包。由于安全原因,允许这样做是不合理的,所以请不要试图“破解”你的安装方式。

而是在github repo shinyapps dependencies上提交问题(或PR)并要求他们支持您丢失的软件包。

第二种解决方案是购买服务器并自行设置闪亮服务器。然后您可以随意安装包。有关这方面的说明可以在here找到。

修改:实际上,shinyapps.io似乎支持自定义库,它们将根据您的libraryrequire来自动安装。因此,您可能只需要删除已上传应用中的ìnstall.packages部分。

  

部署应用程序时,rsconnect程序包会尝试检测应用程序使用的程序包。 rsconnect将此包列表及其依赖项与您的应用程序一起发送到shinyapps.io服务。然后shinyapps.io构建并将软件包安装到您的应用程序的R库中。第一次部署应用程序时,可能需要一些时间来构建这些程序包(取决于使用的程序包数量)。但是,您不会等待在将来的部署期间构建这些程序包(除非您升级或降级程序包)

     

- Shinyapps.io - Getting started