targets流水线运行tar_make()渲染distill文章失败问题求助
问题根源
该报错属于distill包与targets流水线运行逻辑的冲突误报:distill默认在渲染完成后会触发RStudio内置预览,但tar_make()的任务是在独立的callr子进程中运行,子进程无法正确识别本地已安装的RStudio实际版本,才会触发版本过低的错误提示,你的RStudio版本本身符合distill的运行要求,无需升级。
解决方案
方案1:修改Rmd配置(最简便)
在test.Rmd的yaml头部给distill输出项添加preview: false参数,关闭自动预览逻辑,修改后的output配置如下:
output: distill::distill_article: preview: false
方案2:修改_targets.R的tar_render参数
不需要修改Rmd文件,直接在tar_render中传入output_options关闭预览,修改后的_targets.R对应部分如下:
tar_plan( tar_target(dat, iris), tar_render(test_report, "test.Rmd", output_options = list(preview = FALSE)) )
备用方案
如果上述两种方法仍未解决,可在_targets.R最开头添加一行环境变量配置,伪装为非RStudio运行环境,彻底避免distill调用预览逻辑:
Sys.setenv(RSTUDIO = "0")
修改完成后重新运行tar_make()即可正常生成distill格式的文章,生成的文件路径可通过tar_read(test_report)获取。
内容的提问来源于stack exchange,提问作者Zaw
相关产品推荐
相关产品推荐

