首页 文章

闪亮的应用程序与可下载的md报告,错误:“pandoc:无法找到数据文件”由shiny-server运行时

提问于
浏览
2

我创建了一个提供下载按钮的闪亮应用程序 . 按下时,将以html格式创建降价报告 . 这是应用程序:

server <- function(input, output) {
  output$report <- downloadHandler(
    filename = "report.html",
    content = function(file){
      tempReport <- file.path(tempdir(), "report.Rmd")
      file.copy("report.Rmd", tempReport, overwrite = TRUE)
      out <- rmarkdown::render(tempReport, output_file = file)
    }
  )
}

ui <- fluidPage(
  downloadButton("report", label=NULL)
)

shinyApp(ui = ui, server = server)

report.Rmd看起来像这样:

---
output: html_document
---
## Hello
```{r map}
leaflet::leaflet()

如果我从rstudio-server运行应用程序,evrything工作正常:创建并下载一个独立的html文件 . 它包括传单 Map  . 

但是,如果我从shiny-server运行它,我得到的是以下错误:

```java
processing file: report.Rmd
output file: report.knit.md

pandoc: Could not find data file /usr/lib64/R/library/leaflet/htmlwidgets/lib/leaflet/
Warnung: Error in : pandoc document conversion failed with error 97
Stack trace (innermost first):
    53: pandoc_convert
    52: convert
    51: rmarkdown::render
    50: download$func [/srv/shiny-server/biserver/downReport/app.R#7]
     1: runApp
Error : An error has occurred. Check your logs or contact the app author for clarification.

该错误似乎是通过结合rmarkdown,闪亮服务器和传单来触发的 . 例如,从报告中删除传单会修复它 .

任何帮助都是非常有用的 .

这是sessionInfo()的输出:

R version 3.3.3 (2017-03-06)
Platform: x86_64-redhat-linux-gnu (64-bit)
Running under: CentOS Linux 7 (Core)

locale:
 [1] LC_CTYPE=de_DE.UTF-8       LC_NUMERIC=C               
LC_TIME=de_DE.UTF-8        LC_COLLATE=de_DE.UTF-8    
 [5] LC_MONETARY=de_DE.UTF-8    LC_MESSAGES=de_DE.UTF-8    
LC_PAPER=de_DE.UTF-8       LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C             
LC_MEASUREMENT=de_DE.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] shiny_1.0.3

loaded via a namespace (and not attached):
 [1] Rcpp_0.12.10    digest_0.6.12   rprojroot_1.2   mime_0.5        
R6_2.2.1        xtable_1.8-2    jsonlite_1.4   
 [8] backports_1.0.5 magrittr_1.5    evaluate_0.10   stringi_1.1.5   
leaflet_1.1.0   rmarkdown_1.5   tools_3.3.3    
[15] stringr_1.2.0   htmlwidgets_0.8 crosstalk_1.0.0 yaml_2.1.14     
httpuv_1.3.3    htmltools_0.3.6 knitr_1.15.1

我正在使用Shiny Server v1.5.3.838(Node.js v6.10.0) . 这是我的shiny-server.conf:

run_as shiny;
# Define a server that listens of port 3839.
server {
   listen 3839;

  location / {
     site_dir /srv/shiny-server/biserver;
     log_dir /var/log/shiny-server;
  }
}

1 回答

  • 0

    同样的问题在这里......解决了 .

    shiny-server和rstudio服务器在安装目录中嵌入了pandoc .

    只需删除闪亮服务器的坏pandoc二进制文件,并在同一位置执行逻辑链接到新的pandoc版本,或者在我的情况下,我使用了正在运行的本地rstudio服务器的pandoc版本 .

相关问题