pandoc version 1.12.3 or higher is required and was not found (R shiny)

你说的曾经没有我的故事 提交于 2019-11-28 05:13:34
Chris

Go into RStudio and find the system environment variable for RSTUDIO_PANDOC

Sys.getenv("RSTUDIO_PANDOC")

Then put that in your R script prior to calling the render command.

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

This worked for me after I'd been struggling to find how rmarkdown finds pandoc. I had to check github to look at the source.

Another option so that this works for all your R scripts is to define this variable globally.

On Debian/Ubuntu, add the following line to your .bashrc file:

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

On macOS, add the following to your .bash_profile file:

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

On Windows (using Git Bash), add the following to your .bashrc file:

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

The easiest way I solved this issue is to pass the Sys.setenv(..) command inside the crontab command prior to calling the RMarkdown::render. You need to separate the two commands with a semicolon:

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

(Remember that the rstudio-server path differs from the non-server version)

Hey I just beat this error. I solved this by deleting the 2 pandoc files, "pandoc" and "pandoc-citeproc" from the shiny-server folder. I then created a link for each of these files from the rstudio-server folder. It worked like a charm. This was an issue for me when I was trying to embed leaflet in the rmarkdown documents from running a shiny-server on a linux machine. I found it odd that when I ran it in rstudio on the same linux machine it worked fine, but not when I ran it using shiny-server. So the shiny-server install of pandoc is old/outdated. Cheers

If you are trying to run a script from the command line on Windows you just need to have the directory path in the PATH variable*. You can also create a separate User variable named RSTUDIO_PANDOC and give this variable the directory*. Then close and reopen any terminals to refresh the system paths.**

*Experiment with a trailing / if you are having issues. **I was unable to point to a UNC path. The // at the beginning of the path hosed the rmarkdown package pandoc functions. If you are using a UNC path, you must map it to a drive and reference the drive letter. There are ways to do this dynamically. I use a DOS/batch script which I found via Google.

For those not using RStudio, you may just need to install pandoc on your system. For me it was

sudo pacman -S pandoc

and it worked (Arch Linux).

If anyone is having this issue and also use anaconda, its possible they were having my issue. The rstudio shell does not load the .bashrc file when it starts up meaning if your version of pandoc is installed within anaconda Rstudio will not find it. Installing pandoc separately with a command like sudo pacman -S pandoc worked for me!

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!