r - 如何解决 pandoc 问题
问题描述
在 VSCode 中使用时遇到问题saveWidget
,可能是pandoc
.
当我在 Rstudio 中运行以下行时,它运行良好并且mtcars.html
可以生成
htmlwidgets::saveWidget(DT::datatable(mtcars), "mtcars.html", selfcontained = TRUE, title = "mtcars")
但是,当我将相同的代码移动到 VSCode 时,它给了我一个错误,说
Error in htmlwidgets::saveWidget(DT::datatable(mtcars), "mtcars.html", :
Saving a widget with selfcontained = TRUE requires pandoc. For details see:
https://github.com/rstudio/rmarkdown/blob/master/PANDOC.md
我怀疑 VSCode 无法识别 的路径pandoc
,因为我输入find_pandoc
了 VScode 来查找版本和目录,这表明
> rmarkdown::find_pandoc()
$version
[1] '0'
$dir
NULL
但是,在 Rstudio 中,它显示
> find_pandoc()
$version
[1] ‘2.7.2’
$dir
[1] "C:/Program Files/RStudio/bin/pandoc"
解决方案
为了了解发生了什么,让我们看一下rmarkdown:::find_pandoc()
. 我们可以在那里找到以下几行:
sys_pandoc <- find_program("pandoc")
sources <- c(Sys.getenv("RSTUDIO_PANDOC"), if (nzchar(sys_pandoc)) dirname(sys_pandoc))
sources
然后用于获取pandoc
路径。我怀疑在你的情况下RSTUDIO_PANDOC
没有设置,所以rmarkdown:::find_pandoc()
依靠find_program("pandoc")
找到路径。如果你反过来看它的源码,你会发现路径是由运行确定的Sys.which
,相当于从shell中提取路径:
报告可执行文件(包括可执行脚本)的完整路径名的系统命令将由 shell 执行...
话虽如此,您需要将 pandoc 的路径添加到PATH
系统上的环境变量中。
推荐阅读
- python - Ansible:如何从 URI (REST) xml 输出中解析 XML 值
- html - 如何在我的顶部导航和页脚之间居中我的图像?
- node.js - 使用异步节点 js 运行多个 mongodb 查询
- python - 如何在python中将一个数组划分为s个子数组
- python - 如何从列表列表中获取整数
- flutter - 如何在颤振中通过蓝牙使用 tcp/ip
- c# - 如何修复 C# 中键约束的重复?
- reactjs - 我正在使用 mdbreact npm 与 next.js 反应数据表我想在标题中添加 fa fa 图标,但我无法做到
- python - Python中数字的处理
- c++ - 如何在 C++ 中使用 HRESULT 条件检查