【问题标题】:devtools::build_vignettes yields "Error : invalid version specification 'pandoc.exe 1.13.1'devtools::build_vignettes 产生“错误:无效的版本规范'pandoc.exe 1.13.1'
【发布时间】:2015-01-04 09:17:13
【问题描述】:

将 R 升级到 3.1.2 并更新所有包后,我无法再构建小插图。

devtools::build_vignettes(shdoe)

输出如下:

Building shdoe vignettes
Error : invalid version specification 'pandoc.exe 1.13.1'
Warning in engine$weave(file, quiet = quiet) :
  Pandoc is not available. Please install Pandoc.
Moving shdoe-intro.html, shdoe-intro.R to inst/doc/
Copying shdoe-intro.Rmd to inst/doc/

这是在从 1.12.x 版本更新 pandoc 之后(产生了相同的错误)。我的操作系统是 Windows 7,Pandoc 在 PATH 上。

【问题讨论】:

  • 在没有找到 pandoc 后我得到的错误(在R CMD build <pkgname> 之后)是Error: processing vignette 'translate_gen.Rmd' failed with diagnostics: object 'pb' not found。根据knitr的来源,pb似乎来自output.R。你能pandoc /?吗?我收到一个错误pandoc: /R: openFile: permission denied (Permission denied).
  • 另请注意,这发生在我的 pandoc 1.9.1 上。

标签: r knitr pandoc devtools


【解决方案1】:

问题与knitr解析返回的版本号的方式有关

pandoc.exe --version

其中包括调用 pandoc 的名称:

pandoc.exe 1.13.1
[...]

在 Windows 上,knitr 使用 RSys.which('pandoc') 来获取 pandoc 的可执行文件产生 <PATH TO PANDOC>\pandoc.exe,从而导致上述调用以获取 pandoc 的版本,然后 knitr 无法正确处理该版本。

faulty code 是在 knitr 1.7 版中引入的(之前它使用rmarkdown::pandoc_available() 来检查 pandoc 的可用性)。

一种解决方法是将系统变量RSTUDIO_PANDOC 设置为<PATH TO PANDOC>(因为knitr 认为它的存在就足够了)。

【讨论】:

  • 谢谢。现在应该在开发版本中修复它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-12-16
  • 2020-08-05
  • 1970-01-01
  • 1970-01-01
  • 2021-07-23
  • 2011-03-10
  • 1970-01-01
相关资源
最近更新 更多