簡體   English   中英

使用 renv 時,Rscript 無法識別庫

[英]Rscript is not recognising libraries when using renv

我正在使用 R 的 v3.6.3 並使用 renv 在 Mac OSX 上工作。 在 Rstudio 和 R 中,我可以加載已安裝軟件包的庫,例如library(ggplot2)作品。 但是,當我使用 Rscript 運行腳本時,我收到了消息

Error in library(ggplot2) : there is no package called ‘ggplot2’

根據this 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')

我設法解決了這個問題。 akrun 的回答很有用,但沒有用,但給我指出了錯誤的方向。 答案不起作用,因為使用它,我收到以下錯誤:

    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() 查看實際運行 Rscript 程序的 ruby 程序,我發現它正在使用 --vanilla 選項運行,即

Rscript --vanilla script_name

刪除 --vanilla 選項解決了這個問題。 我認為帶有 --vanilla 選項的腳本停止工作,因為我使用 brew 重新安裝了 R 以解決我遇到的另一個問題,並且作為其中的一部分發出了以下命令:

brew link --overwrite r 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM