.Renviron 变量在 powershell 中的 Rscript 运行 时找不到?

.Renviron variables not found when Rscript run from powershell?

我有一个 R 脚本,当 运行 来自 Rstudio 时,它 运行 非常完美。它使用 .Renviron 文件提供在 Sys.getenv() 中可见的环境变量(所以我知道它有效)。

然而,当我 运行 通过 powershell 使用完全相同的脚本时,R 脚本神秘地找不到那些环境变量(我通过 print(Sys.getenv()) 确认了这一点 - 通过 .Renviron不见了。

问题

当 R 脚本是来自 powershell 的 运行 时,为什么没有找到 .Renviron 变量(而不是当脚本在 RStudiom 中是 运行 时,一切正常)

我试过的

.Renviron 文件当前保存在 "C:/Users/Administrator/Documents/.Renviron"

正在检查 normalizePath(Sys.getenv('R_HOME')) returns "C:\Program Files\R\R-3.6.0",所以我也尝试将 .Renviron 放在那里。运气不好

基于this我也尝试了Sys.getenv("C:/Users/Administrator/Documents/.Renviron"),但还是没有成功

这对我有用

path_to_Renviron_file <- "C:/Users/Administrator/Documents/.Renviron"
readRenviron(path_to_Renviron_file) 

RScript 执行与普通 R 相同的初始化,除非使用命令行选项 (--no-environ) 特别禁用。在不同位置搜索 .Renviron.Rprofile 文件,按优先级降序排列:

  1. 在当前工作目录
  2. 在用户的主目录中
  3. 在 R 主目录中 (R_HOME)

The documentation gives more details.

由于您尝试更改位置 (2) 和 (3) 中的文件但没有成功,因此您有 另一个 .Renviron 文件是理所当然的在您启动的当前工作目录中 Rscript.

我遇到了同样的问题:.Renviron 文件在 Windows 上被完全忽略。
我认为最终起作用的是重新安装 R(我有 R 3.6,安装了 R 4.0)。

但事实证明我错了。魔术酱是将 --cd-to-userdocs 添加到 R.exeRscript.exe 命令。 我在任何地方都找不到此选项的文档,它没有显示在命令行参数帮助中,但它有效。