packrat::resolve() продолжает просить меня установить Rtools, хотя он уже установлен

Сегодня я обнаружил очень (очень) классный пакет packrat R, чтобы сделать ваш проект воспроизводимым.

Однако, когда я использую packrat для своего проекта с помощью packrat::resolve() в Rstudio, пакеты, которым требуется Rtools, вызывают всплывающее окно с просьбой установить Rtools (хотя он уже установлен в "C:\rtools40"). С другой стороны, Rstudio установлен в "C:\Program Files\RStudio".

Я попытался собрать этот проект на другом ноутбуке, и эта проблема не возникает (Rtools установлен так же, а Rstudio установлен непосредственно в C:\RStudio).

Это означает, что Rstudio не находит путь к rtools на первом ноутбуке.

Это общая проблема? Может ли это быть связано с путем Rstudio?

Для информации:

> sessionInfo()
R version 4.0.2 (2020-06-22)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 18363)

Matrix products: default

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

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

loaded via a namespace (and not attached):
 [1] compiler_4.0.2   bookdown_0.20    rsconnect_0.8.16 htmltools_0.5.0  tools_4.0.2      yaml_2.2.1       rmarkdown_2.5   
 [8] knitr_1.30       xfun_0.18        digest_0.6.27    rlang_0.4.8      evaluate_0.14

Ваше здоровье!

РЕДАКТИРОВАТЬ

Оказывается, использование новой альтернативы packrat (renv) решает эту проблему. .


person FrsLry    schedule 28.12.2020    source источник
comment
К вашему сведению, пакет packrat больше не используется и заменен пакетом renv. На вашем месте я бы обратился к renv.   -  person Phil    schedule 28.12.2020


Ответы (1)


Вам нужно добавить RTools40 в ваш PATH. Вы можете сделать это либо с помощью пользовательского интерфейса (поиск переменных среды в поиске Windows), либо с помощью

library(devtools)
Sys.setenv(PATH = paste("C:/Rtools40/bin", Sys.getenv("PATH"), sep=";"))
Sys.setenv(BINPREF = "C:/Rtools40/mingw_$(WIN)/bin/")
person mhovd    schedule 28.12.2020