Pandoc 版本1.12.3或更高版本是必需的,没有找到(R 发光)

我有一个问题生成一个 pdf 报告从我的应用程序闪亮,这是托管在一个服务器上。

该应用程序工作正常,但当我按下按钮下载报告,我得到这个错误:

 pandoc version 1.12.3 or higher is required and was not found.

问题是,如果我输入 pandoc -v,我会得到:

 pandoc 1.12.3.3
Compiled with texmath 0.6.6, highlighting-kate 0.5.6.1.
Syntax highlighting is supported for the following languages:
actionscript, ada, apache, asn1, asp, awk, bash, bibtex, boo, c, changelog,
clojure, cmake, coffee, coldfusion, commonlisp, cpp, cs, css, curry, d,
diff, djangotemplate, doxygen, doxygenlua, dtd, eiffel, email, erlang,
fortran, fsharp, gnuassembler, go, haskell, haxe, html, ini, java, javadoc,
javascript, json, jsp, julia, latex, lex, literatecurry, literatehaskell,
lua, makefile, mandoc, markdown, matlab, maxima, metafont, mips, modelines,
modula2, modula3, monobasic, nasm, noweb, objectivec, objectivecpp, ocaml,
octave, pascal, perl, php, pike, postscript, prolog, python, r,
relaxngcompact, restructuredtext, rhtml, roff, ruby, rust, scala, scheme,
sci, sed, sgml, sql, sqlmysql, sqlpostgresql, tcl, texinfo, verilog, vhdl,
xml, xorg, xslt, xul, yacc, yaml
Default user data directory: /home/daniele/.pandoc
Copyright (C) 2006-2013 John MacFarlane
Web:  http://johnmacfarlane.net/pandoc
This is free software; see the source for copying conditions.  There is no
warranty, not even for merchantability or fitness for a particular purpose.

所以我想我有正确的版本。 TexLive 也安装了,路径在 $PATH中。

服务器 R

library(shiny)
library(drsmooth)
library(shinyBS)
library(knitr)
library(xtable)
library(rmarkdown)


shinyServer(function(input, output,session) {


output$downloadReport <- downloadHandler(
filename = function() {
paste('report', sep = '.','pdf')
},


content = function(file) {
src <- normalizePath('report.Rmd')


# temporarily switch to the temp dir, in case you do not have write
# permission to the current working directory
owd <- setwd(tempdir())
on.exit(setwd(owd))
file.copy(src, 'report.Rmd')


library(rmarkdown)
out <- render('report.Rmd')
file.rename(out, file)
})


output$tb <- renderUI({
p(h4("Report")),
"Dowload a the report of your analysis in a pdf format",
tags$br(),downloadButton('downloadReport',label="Download report"),
tags$em("This option will be available soon")
})
})

* report. Rmd * 不包含任何类型的计算,它只是文本。 Pdf 生成在我的本地版本(MacOS)上运行得很好,但在服务器上就不行了。

如果需要,我会提供其他信息。

54190 次浏览

进入 RStudio,找到 RSTUDIO_PANDOC的系统环境变量

Sys.getenv("RSTUDIO_PANDOC")

然后在调用 render 命令之前将其放到 R 脚本中。

Sys.setenv(RSTUDIO_PANDOC="--- insert directory here ---")

在我努力寻找如何降价找到潘多克之后,这招对我很管用。我查了下 Github 才找到源头。

另一个适用于所有 R 脚本的选项是在全局范围内定义这个变量。

在 Debian/Ubuntu 中,在.bashrc 文件中添加以下代码行:

export RSTUDIO_PANDOC=/usr/lib/rstudio/bin/pandoc

在 macOS 上,将以下内容添加到. bash _ profile 文件中:

export RSTUDIO_PANDOC=/Applications/RStudio.app/Contents/MacOS/pandoc

在 Windows 上(使用 Git Bash) ,向.bashrc 文件添加以下内容:

export RSTUDIO_PANDOC="/c/Program Files/RStudio/bin/pandoc/"

如果您试图从 Windows 的命令行运行脚本,只需要在 PATH 变量 * 中包含目录路径。您还可以创建一个名为 RSTUDIO _ PANDOC 的单独 User 变量,并为该变量提供目录 * 。然后关闭并重新打开任何终端以刷新系统路径。**

* 尝试跟踪/如果你有问题。 我找不到北卡罗来纳大学的路径。路径开头的//包含 rmarkdown 包 pandoc 函数。如果使用 UNC 路径,则必须将其映射到驱动器并引用驱动器号。有很多方法可以动态地做到这一点。我使用一个 DOS/批处理脚本,这是我通过谷歌找到的。

嘿,我刚刚打败了这个错误。我解决这个问题的方法是从发光服务器文件夹中删除2个 pandoc 文件,即“ pandoc”和“ pandoc-citeproc”。然后,我从 rStudio-server 文件夹为这些文件中的每一个创建了一个链接。效果非常好。当我试图在 linux 机器上运行一个发光服务器时,在 rmarkdown 文档中嵌入传单时遇到了这个问题。我发现奇怪的是,当我在同一台 linux 机器上运行它时,它工作得很好,但是当我使用 shine-server 运行它时就不一样了。所以 Pandoc 的闪亮服务器安装已经过时了。 干杯

解决这个问题的最简单方法是传递 Sys.setenv (。.)调用 RMarkdown: : render 之前,在 crontab 命令内部调用。您需要用分号分隔这两个命令:

R -e "Sys.setenv(RSTUDIO_PANDOC='/usr/lib/rstudio-server/bin/pandoc'); rmarkdown::render('File.Rmd', output_file='output.html')"

(请记住,rStudio-server 路径不同于非服务器版本)

对于那些不使用 RStudio 的用户,您可能只需要在系统上安装 pandoc

sudo pacman -S pandoc

它工作(Arch Linux)。

如果有人有这个问题,也使用蟒蛇,它的可能他们有我的问题。RStudio shell 不加载。Bashrc 文件启动时意味着如果您的版本的 pandoc 安装在 anaconda RStudio 中将找不到它。使用像 sudo pacman -S pandoc这样的命令单独安装 pandoc 对我来说很有用!

我正在使用 Arch Linux 和 RStudio。 唯一对我有用的就是:

sudo pacman -S pandoc

:)

我在 IntelliJR 插件中遇到过类似的问题,我通过复制 ~/.IntelliJIdea2019.3/config/plugins/rplugin/pandoc中的 pandoc 文件解决了这个问题

我在 Debian10上构建簿记文档时遇到了类似的 pandoc问题。在 Makefile中,我所做的是:

# use rstudio pandoc
# this rule sets the PANDOC environment variable from the shell
build_book1:
export RSTUDIO_PANDOC="/usr/lib/rstudio/bin/pandoc";\
Rscript -e 'bookdown::render_book("index.Rmd", "bookdown::gitbook")'


# use rstudio pandoc
# this rule sets the environment variable from R using multilines
build_book2:
Rscript -e "\
Sys.setenv(RSTUDIO_PANDOC='/usr/lib/rstudio/bin/pandoc');\
bookdown::render_book('index.Rmd', 'bookdown::gitbook')"

这两条规则是等价的,并且成功地编织了这本书。

我只是不喜欢冗长的 Rscript命令:

Rscript -e "Sys.setenv(RSTUDIO_PANDOC='/usr/lib/rstudio/bin/pandoc'); bookdown::render_book('index.Rmd', 'bookdown::gitbook')"

在 Windows 上,如果没有 RStudio,你可以使用 choco install pandoc或者通过 pandoc 网站 https://pandoc.org/安装 pandoc。

请确保重新启动 IDE 以确保它选择新的安装。

对于 Windows 10,RStudio 2022.07.02

Pandoc 是与 RStudio 一起安装的,所以我更喜欢使用已经安装的 Pandoc.exe。据我所知,它的安装位置是不断变化的。在过去的几年里,我已经在下面的位置看到了它(最上面的位置是我的 RStudio 版本,在2022年8月)。

“ C:/Program Files/RStudio/bin/Quarto/bin/tools”
“ C:/Program Files/RStudio/bin/Quarto/bin”
“ C:/Program Files/RStudio/bin/pandoc”

一旦您知道预安装的 pandoc 在哪里,您就可以在您的。R 文件作为顶部的答案从克里斯/一会表示,它为我工作。

Sys.setenv(RSTUDIO_PANDOC = "C:/Program Files/RStudio/bin/quarto/bin/tools")