在 RStudio 中检查 R 包:错误 'file' 不存在(工作目录不适应项目)

Checking a R package in RStudio: Error 'file' doesn't exist (working directory does not adapt to project)

我想查看我写的一个包。当我在 RStudio 中单击 Check 按钮时,我收到以下消息:

==> devtools::check(document = FALSE)

Setting env vars --------------------------------------------------------------
CFLAGS  : -Wall -pedantic
CXXFLAGS: -Wall -pedantic
Building BBkUtils -------------------------------------------------------------
"C:/PROGRA~1/R/bin/x64/R" --no-site-file --no-environ --no-save --no-restore  \
  --quiet CMD build "U:\Eigene Dateien\R\BBkUtils" --no-resave-data  \
  --no-manual 

* checking for file 'U:\Eigene Dateien\R\BBkUtils/DESCRIPTION' ... OK
* preparing 'BBkUtils':
* checking DESCRIPTION meta-information ... OK
* checking for LF line-endings in source and make files
* checking for empty or unneeded directories
* building 'BBkUtils_0.1.0.tar.gz'

Setting env vars --------------------------------------------------------------
_R_CHECK_CRAN_INCOMING_ : FALSE
_R_CHECK_FORCE_SUGGESTS_: FALSE
Checking BBkUtils -------------------------------------------------------------
"C:/PROGRA~1/R/bin/x64/R" --no-site-file --no-environ --no-save --no-restore  \
  --quiet CMD check  \
  "C:\Users\s1504gl\AppData\Local\Temp\RtmpSyMuXs/BBkUtils_0.1.0.tar.gz"  \
  --as-cran --timings --no-manual 

Warning: 'C:\Users\s1504gl\AppData\Local\Temp\RtmpSyMuXs/BBkUtils_0.1.0.tar.gz' is neither a file nor directory, skipping

Error: Check failed: 'U:\Eigene Dateien\R/BBkUtils.Rcheck' doesn't exist
Execution halted

Exited with status 1.

如果我从 R 控制台启动 devtools::check(),此行为不会改变。

有趣的是,我可以毫无问题地构建包(之前无需检查)。从上面的消息中也可以清楚地看出这一点。但是由于某些原因,在提到的临时文件夹中找不到该包(消息中说确实不存在)。

在检查过程中,.tar.gz 文件在项目根目录之上创建了一个文件夹级别。我能以某种方式告诉 devtools::check() 在哪里寻找 .tar.gz 文件吗?


编辑 1:工作目录有问题

我发现工作目录不适合项目。我仍然是 U:\Eigene Dateien\R,尽管它应该是 U:\Eigene Dateien\R\BBkUtils。这发生在我所有的项目中。有什么建议吗?


编辑 2:如何创建项目

最初,我使用新建项目向导 创建了项目。之后,我将项目移动到另一个文件夹。但我不认为这是导致问题的原因,因为我在使用向导创建新包时观察到相同的错误。

我也尝试将项目根目录重置为正确的文件夹,但项目选项中的概念 项目根目录 仍然存在。

我终于从我的同事那里得到信息,文件 C:\Program Files\R\etc\Rprofile.site 中有一个函数 .First,它正在将工作目录设置为 U:\Eigene Dateien\R

删除相应的行并重新启动 R 解决了我的问题。