0

我有几个大型闪亮应用程序,它们可以在我的本地计算机上完美运行,但不能在我闪亮的服务器上运行,因为似乎无法加载大多数已安装的软件包。

我使用这个包是renv因为我想避免不同闪亮应用程序中使用的包之间的依赖问题。所以我所有的 nessecary 包都包含在一个文件夹renv中,我想从中加载它们以运行我的应用程序:

在此处输入图像描述

最小的工作示例:

# change path to library
.libPaths("/home/yvs/ShinyApps/test2/renv/library/R-3.6/x86_64-w64-mingw32")

# load packages
library(shiny)
library(DBI)
library(RPostgreSQL)
library(shinyalert)

# run app
shinyApp(
    ui = fluidPage(
      column(4,
        numericInput("x", "Value", 5),
        br(),
        actionButton("button", "test"),
        br(),
        textOutput("text")
      ),
      column(8, 
        tableOutput("table")),
        useShinyalert()
    ),
    server = function(input, output) {
      observeEvent(input$button, {
        cat("Showing", input$x, "rows\n")
        shinyalert("yeah!")
      })
      df <- eventReactive(input$button, {
        head(cars, input$x)
      })
      output$table <- renderTable({
        df()
      })
      output$text <- renderText(
        paste0(.libPaths()) # display path to library
    )
    }
)

当我调用相应的 http 页面时,此错误消息出现在我的日志文件中:

Fehler: package or namespace load failed for ‘RPostgreSQL’ in library.dynam(lib, package, package.lib):
 shared object ‘RPostgreSQL.so’ not found
Ausführung angehalten

当我标记library(RPostgreSQL)为评论时,我可以毫无错误地运行该应用程序。由于所有 packages shinyDBI和仅在我的 renv 文件夹中可用(而不在默认的闪亮库中),我假设通过命令加载包RPostgreSQL似乎有效。因此,我不认为这只是一个权限问题(我不欠管理员权限或以用户shiny运行/登录的权限。shinyalert.libPaths()

此外,我不认为这个问题仅限于包RPostgreSQL,因为我试图加载许多不同的包。

它适用于以下软件包: shiny leaflet stats utils graphics DBI shinycssloaders shinyalert shinyjs DT.

它不适用于以下软件包: sp plotly RPostgreSQL postGIStools dplyr lubridate devtools rCharts rjson yaml config.

我至少知道以下两个类似的问题:

但是,他们都没有帮助解决我的问题。

我的本地计算机和闪亮的服务器都使用 R 3.6.3。

非常感谢任何帮助!

4

0 回答 0