使用 renv 时 Rscript 无法识别库
Rscript is not recognising libraries when using renv
我正在研究 Mac OSX,使用 R 的 v3.6.3 和 renv。在 Rstudio 和 R 中,我可以加载我安装的包的库,例如 library(ggplot2)
作品。但是,当我 运行 使用 Rscript 的脚本时,我收到消息
Error in library(ggplot2) : there is no package called ‘ggplot2’
根据这个 SO answer,我需要确保
的值
Sys.getenv('R_LIBS_USER') in R.exe
与
的值相同
Rscript.exe -e ".libPaths()"
但是值是一样的,都是指向我项目文件夹中的renv-system-library
那么我该如何解决这个问题?
最好在 library
调用
中指定 lib.loc
library(ggplot2, lib.loc = '/path/where/library/is/located')
我设法解决了这个问题。 ak运行的回答很有用,但没有用,但指出了错误的方向。答案无效,因为使用它时,我收到以下错误:
Error: package or namespace load failed for ‘ggplot2’:
.onLoad failed in loadNamespace() for 'pillar', details:
call: utils::packageVersion("vctrs")
error: there is no package called ‘vctrs’
现在 vctrs
在 '/path/where/library/is/located'
中,所以我认为依赖包不是从该路径加载的,而是 Rscript 的默认路径。在脚本中放入 print(.libPaths()
得到
"/usr/local/Cellar/r/3.6.3_1/lib/R/library"
而不是
[1] "/Users/Chris/Sites/app_name/renv/library/R-3.6/x86_64-apple-darwin18.7.0"
[2] "/private/var/folders/5_/p_yl0439059b7_jdqzrm0hr40000gr/T/RtmptdHcWN/renv-system-library"
对于 Rstudio 中的 .libPaths()
。查看实际上 运行ning Rscript 程序的 ruby 程序,我发现它 运行 带有 --vanilla 选项,即
Rscript --vanilla script_name
删除 --vanilla 选项解决了这个问题。我认为带有 --vanilla 选项的脚本停止工作是因为我使用 brew 重新安装了 R 来修复我遇到的另一个问题,并且作为这个问题的一部分发出了这个命令:
brew link --overwrite r
我正在研究 Mac OSX,使用 R 的 v3.6.3 和 renv。在 Rstudio 和 R 中,我可以加载我安装的包的库,例如 library(ggplot2)
作品。但是,当我 运行 使用 Rscript 的脚本时,我收到消息
Error in library(ggplot2) : there is no package called ‘ggplot2’
根据这个 SO answer,我需要确保
的值Sys.getenv('R_LIBS_USER') in R.exe
与
的值相同Rscript.exe -e ".libPaths()"
但是值是一样的,都是指向我项目文件夹中的renv-system-library
那么我该如何解决这个问题?
最好在 library
调用
lib.loc
library(ggplot2, lib.loc = '/path/where/library/is/located')
我设法解决了这个问题。 ak运行的回答很有用,但没有用,但指出了错误的方向。答案无效,因为使用它时,我收到以下错误:
Error: package or namespace load failed for ‘ggplot2’:
.onLoad failed in loadNamespace() for 'pillar', details:
call: utils::packageVersion("vctrs")
error: there is no package called ‘vctrs’
现在 vctrs
在 '/path/where/library/is/located'
中,所以我认为依赖包不是从该路径加载的,而是 Rscript 的默认路径。在脚本中放入 print(.libPaths()
得到
"/usr/local/Cellar/r/3.6.3_1/lib/R/library"
而不是
[1] "/Users/Chris/Sites/app_name/renv/library/R-3.6/x86_64-apple-darwin18.7.0"
[2] "/private/var/folders/5_/p_yl0439059b7_jdqzrm0hr40000gr/T/RtmptdHcWN/renv-system-library"
对于 Rstudio 中的 .libPaths()
。查看实际上 运行ning Rscript 程序的 ruby 程序,我发现它 运行 带有 --vanilla 选项,即
Rscript --vanilla script_name
删除 --vanilla 选项解决了这个问题。我认为带有 --vanilla 选项的脚本停止工作是因为我使用 brew 重新安装了 R 来修复我遇到的另一个问题,并且作为这个问题的一部分发出了这个命令:
brew link --overwrite r