包生成失败,因为vignette找不到子Rmd文件
我已经使用包生成失败,因为vignette找不到子Rmd文件,r,r-markdown,knitr,r-package,R,R Markdown,Knitr,R Package,我已经使用child块模块化了我的vignette Rmd文件,以便能够在其他Rmd文档中重用子Rmd文件 程序包生成失败(在RStudio中,并带有R CMD build.),并显示以下错误消息: ** installing vignettes ‘Vignette.Rmd’ using ‘UTF-8’ Warning in readLines(if (is.character(input2)) { : cannot open file 'child_doc.Rmd': No suc
child
块模块化了我的vignette Rmd文件,以便能够在其他Rmd文档中重用子Rmd文件
程序包生成失败(在RStudio中,并带有R CMD build.
),并显示以下错误消息:
** installing vignettes
‘Vignette.Rmd’ using ‘UTF-8’
Warning in readLines(if (is.character(input2)) { :
cannot open file 'child_doc.Rmd': No such file or directory
Quitting from lines 10-11 (child_doc.Rmd)
Error in readLines(if (is.character(input2)) { :
cannot open the connection
ERROR: installing vignettes failed
如何构建我的包(让R找到我的子Rmd文件)?
Rmd文件示例:
渐晕图
---
title: "title"
author: "me"
date: "`r Sys.Date()`"
output: rmarkdown::html_vignette
vignette: >
%\VignetteIndexEntry{title}
%\VignetteEngine{rmarkdown::render}
%\VignetteEncoding{UTF-8}
main doc
```{r child = "child_doc.Rmd"}
```
child_doc.Rmd:
# This is from the child doc
lorem ipsum
更新1:
指示RStudio使用包文件夹作为根目录构建渐晕图(这可以解释为什么找不到文件)
更新2:
如果您已经在github创建了一个最小的可复制示例包以及一份调查结果摘要:
更新3:
我在knitr
()上打开了一个问题,但@user2554330已将工具
命名空间确定为问题的原因之一
更新4:
请参阅Duncan Murdoch打开的bugzilla bug条目:这看起来像一个bug(或者可能不止一个)。我可能会称之为R中的bug,但它可能是knitr中的bug。构建tarball时,R将主文件复制到inst/doc
,但不复制子文件knitr
然后看着它,因为它没有看到孩子,所以它退出了
要生成包,只需在inst/doc
中创建一个与子文件同名的空文件。但这还不足以通过检查
当检查包时,R将看到子文件位于inst/doc
,并且会因为它不是一个正确的小插曲而感到不安。所以你需要愚弄R,使其认为它是一个
就我所见,有一个简单(尽管丑陋)的解决办法。只需将一个名为child_doc.Rmd
的文件放入inst/doc
目录。为了让R认为这是一个小插曲,复制这些台词
%\VignetteIndexEntry{title}
%\VignetteEngine{rmarkdown::render}
%\VignetteEncoding{UTF-8}
从主文件。否则,内容似乎无关紧要,因此我不会在那里放任何其他内容
将真实的子文档.Rmd
文件放入vignettes
目录。我认为如果您这样做,您的包将构建和检查,不会出现错误
这可能值得一个bug报告,但我不确定该修复什么。也许knitr
在检查时应该更宽容,或者R应该更快地复制文件
糟糕的是,这个解决方案太难看了,一旦修复了错误,可能会导致其他问题。很棒的分析!我也会把它归类为bug。如果(不应用所描述的解决方法)调用
devtools::build\u vignettes()
,会发生什么情况?之后,我在构建或检查过程中不再收到任何错误或警告,但inst/doc
仍然不包含子Rmd文件。这通过了构建,但我的检查失败。我也在使用R3.4.4(在Linux上),明天我将尝试使用Windows和另一个R版本构建。感谢您的帮助,我现在正在调试代码,并尝试确定R或knitr是问题的根源,以便能够打开问题。目前看来,如果使用正确的参数调用,则tools::buildVignettes
不是问题(R CMD build+check根据帮助调用此函数)。我会接受你的回答,因为你提供了一个解决方案。谢谢!问题似乎出在tools::。安装_package\u vignettes2
,它在doc
目录上调用tools::pkgignettes
,而不复制所有文件。我将提交一个bug报告。哇,代码中的深度挖掘:-)很高兴听到这个。我已经在github为knitr发行了一期,也许您可以链接您的门票,以实现一个大画面: