R 在 R CMD 检查期间引用不存在的文件

R refers to non exisiting files during R CMD check

我想 R CMD check 使用 RStudio 我的包(对于这个问题我称之为 pkg)。但是我收到以下错误消息:

* preparing 'pkg':
* checking DESCRIPTION meta-information ... OK
* installing the package to build vignettes
* creating vignettes ...Error in find_vignette_product(name, by = "weave", dir = docdir, engine = engine) : 
  Failed to locate the 'weave' output file (by engine 'utils::Sweave') for vignette with name 'my-vignette'. The following files exist in directory 'C:/Users/name/AppData/Local/Temp/RtmpQLnSjE/Rbuild244434d45c05/pkg/vignettes': 'my-vignette.R', 'my-vignette.Rmd'
Execution halted
Error: Command failed (1)
In addition: Warning message:
`cleanup` is deprecated 
Execution halted

Exited with status 1.

首先,可能出现问题的地方是我的 C:/Users/name/AppData/Local/Temp/ 目录中没有名为 RtmpQLnSjE 的文件夹。 运行 我手工制作的 Rmd 文件,没有产生任何错误。

我将 RStudio 更新到最新版本 1.1.423,这是我的 SessionInfo():

R version 3.4.3 (2017-11-30)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)

Matrix products: default

locale:
[1] LC_COLLATE=German_Germany.1252  LC_CTYPE=German_Germany.1252    LC_MONETARY=German_Germany.1252
[4] LC_NUMERIC=C                    LC_TIME=German_Germany.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] MCMCglmm_2.25 ape_5.0       coda_0.19-1   lme4_1.1-15   Rcpp_0.12.15  Matrix_1.2-12 hmi_0.9.4    

loaded via a namespace (and not attached):
 [1] lattice_0.20-35 corpcor_1.6.9   digest_0.6.15   withr_2.1.1     MASS_7.3-48     grid_3.4.3     
 [7] nlme_3.1-131    cubature_1.3-11 minqa_1.2.4     nloptr_1.0.4    devtools_1.13.4 splines_3.4.3  
[13] tools_3.4.3     yaml_2.1.16     parallel_3.4.3  compiler_3.4.3  memoise_1.1.0   tensorA_0.36 

作为答案的结论:

Failed to locate the 'weave' output file

此错误可能有多个根本原因,并不总是容易追查。但是,它很有可能与小插图内的代码相关,特别是代码导航目录等(例如 setwd() 或其他可能依赖于独立 [= 之间可能不同的相对路径的函数) 17=] 和更多的参与 R CMD check)

我最近 运行 看到一个小插图文件的名称中有一个 space(例如“我的 Vignette.Rmd”)。它正在创建一个名为 My-Vignette.html 的 html 文件。我认为是名称中的连字符导致了问题(基于上面的答案以及我所看到的。)