【发布时间】:2019-05-02 23:27:40
【问题描述】:
我在 Amazon Web Services 实例上设置了一个闪亮的服务器,我正在尝试将我的 app.R 安装到它上面,但出现此错误:
Error in dbDriver("PostgreSQL") : could not find function "dbDriver"
Calls: runApp ... sourceUTF8 -> eval -> eval -> ..stacktraceon.. -> get_query
Execution halted
我认为这与软件包 DBI 的库安装有关,但我尝试在实例上再次安装它并没有成功。 不知道接下来要尝试什么..
这是错误的全图,我可以添加所需的任何其他信息:
我还可以确认闪亮服务器安装正确,因为此页面正常加载:
这就是我尝试在实例中安装包的方式:
sudo su - -c "R -e \"install.packages(c('shiny', 'shinythemes', 'shinycssloaders', 'dplyr', 'xlsx','ggplot2','ggthemes','DT','stringr','RPostgreSQL','tidyr','dbplyr', DBI','splitstackshape'), repos='http://cran.rstudio.com/')\""
而 dbDriver 是 DBI 包中的一个函数
这是我的 app.R 代码包含的部分内容:
required_packages <- c("shiny", "shinythemes", "shinycssloaders", "dplyr", "xlsx","ggplot2","ggthemes","DT","stringr","RPostgreSQL","tidyr","dbplyr","DBI","splitstackshape"
,"magrittr","tidyverse","shinyjs","data.table","plotly")
absent_packages <- required_packages[!(required_packages %in% installed.packages()[,"Package"])]
if(length(absent_packages)) install.packages(absent_packages)
set.seed(1)
get_query <- function(querystring){
# create a connection
# loads the PostgreSQL driver
drv <- dbDriver("PostgreSQL")
# creates a connection to the postgres database
# note that "con" will be used later in each connection to the database
con <- dbConnect(drv, dbname = "postgres", host = "/var/run/postgresql", port = 5432, user = "postgres", password = "pw")
on.exit(dbDisconnect(con))
#rstudioapi::askForPassword("Database password")
query <- eval(parse(text = querystring))
return(query)
}
这些是同一实例上的 postgreSQL 数据库的表和连接信息:
如果我在 dbConnect() 和 dbDisconnect() 前面添加 DBI:: 并使用 RPostgres::Postgres() 作为 dbConnect 函数中的驱动程序,我会收到以下错误:
【问题讨论】:
-
请让这个问题可重现。这包括示例代码(包括列出非基础 R 包)。参考:stackoverflow.com/questions/5963269、stackoverflow.com/help/mcve 和 stackoverflow.com/tags/r/info。
-
老实说,我不确定如何使这个可重现,因为我认为这与我的实例设置有关。我应该添加已安装的库吗?我已经在我的实例上设置了一个 postgreSQL 数据库和闪亮服务器,所以我希望其他人以前看到过这个错误并且知道它的含义。
标签: r postgresql shiny