gpt4 book ai didi

r - 通过 cron 运行脚本时无法识别来自 RSudio Server 的 pandoc

转载 作者:行者123 更新时间:2023-12-02 04:12:54 25 4
gpt4 key购买 nike

在服务器上,我希望 cron 运行 R 脚本,该脚本使用 rmarkdown 呈现 HTML 页面。 RStudio 服务器已安装。用户 mark 的 crontab 条目是:

* * * * * Rscript R/test.R >> /tmp/cron.log 2>&1

测试.R:

library(rmarkdown)
getwd()
render("R/test.Rmd")

cron.log 文件显示

[1] "/home/mark"
Error: pandoc version 1.12.3 or higher is required and was not found.
Execution stopped

但是,从控制台运行 test.R 工作正常:

Rscript R/test.R 

使用符号链接(symbolic link) described herepandoc 的 RStudio 服务器版本添加到 usr/local/bin 中)。在控制台中检查 pandoc 版本给出

mark@myserver:$ pandoc -v
pandoc 1.15.2

这不是日志文件中的旧版本。此外,似乎找到了二进制文件

mark@myserver:$ which pandoc
/usr/local/bin/pandoc

我不确定发生了什么事。有什么想法吗?

最佳答案

很可能 /usr/local/bin 已添加到 bash shell 中的 $PATH 中,但您的 cron 作业并未在 bash 下运行,因此路径上没有 pandoc。要测试这个假设,请将这些行添加到您的 R 文件中:

Sys.getenv("PATH")
Sys.which("pandoc")

如果确实如此,您可以将 R 脚本适本地附加到 $PATH 中,或者让 cron 在 bash shell 下运行该作业。

如果所有其他方法都失败,您可以设置RSTUDIO_PANDOC:

Sys.setenv(RSTUDIO_PANDOC = "/usr/local/bin/pandoc")

关于r - 通过 cron 运行脚本时无法识别来自 RSudio Server 的 pandoc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35624025/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com