Как я могу установить пакет в каталог, содержащий апостроф, с помощью makeLazyLoading?

В RStudio я создал новый проект, используя renv. Я пытаюсь установить пакет RMarkdown и его зависимости. Однако путь к моему проекту включает апостроф и пробелы, которые не позволяют мне установить определенные пакеты. Я не могу изменить этот путь (он синхронизируется с бизнес-аккаунтом OneDrive). Можно ли установить эти пакеты?

Вот сообщение об ошибке (я немного изменил путь, но он следует в том же формате с апострофом и пробелами в том же месте) ...

Error: unexpected symbol in "tools:::makeLazyLoading("rmarkdown", "/Users/name/business account's name/team/project/renv/staging/1/00LOCK-rmarkdown/00new", keep.source = FALSE, keep.parse.data = FALSE, set.install.dir = '/"
Execution halted
ERROR: lazy loading failed for package ‘rmarkdown’
* removing ‘/Users/name/business account's name/team/project/renv/staging/1/rmarkdown’

person Tom    schedule 12.11.2020    source источник


Ответы (1)


Вероятно, наиболее простым решением в вашем случае было бы изменить путь к библиотеке этого проекта так, чтобы он указывал куда-нибудь без каких-либо специальных символов. Например, вы можете поместить это в свой проект .Renviron:

RENV_PATHS_LIBRARY = /path/to/library

где /path/to/library - это доступный для записи путь к файлу без каких-либо апострофов или других специальных символов.

Другой подход, который вы можете попробовать, - отключить поэтапную установку R, например что-то вроде:

Sys.setenv(R_INSTALL_STAGED = "false")
install.packages("rmarkdown", type = "source", INSTALL_opts = "--no-test-load")

Или, если используется renv:

Sys.setenv(R_INSTALL_STAGED = "false")
options(install.opts = "--no-test-load")
renv::install("rmarkdown")

Эти параметры могут быть установлены в ваших .Rprofile / .Renviron файлах по мере необходимости - см. ?Startup для получения более подробной информации.

person Kevin Ushey    schedule 12.11.2020
comment
Спасибо за ответ. Я никогда не пробовал менять .Renviron, но я кое-что читал, и похоже, что я просто добавляю R-скрипт с именем .Renviron, который включает предложенную вами строку (RENV_PATHS_LIBRARY = / path / to / library) в основе каталог проекта. Это верно? - person Tom; 13.11.2020
comment
Правильно - .Renviron - это список переменных среды в форме <name> = <value>, который можно разместить либо в корне проекта, либо в вашем домашнем каталоге. Это описано в файле справки R, доступном через ?Startup. См. Документацию rstudio.github.io/renv/reference/paths.html. на каких путях можно настроить renv. - person Kevin Ushey; 13.11.2020
comment
Я попытался добавить файл .Renviron с предложенной выше строкой, указывающей на папку вне проекта в месте, которое означало, что путь к файлу не содержал пробелов или специальных символов. Я все еще сталкивался с той же проблемой, поэтому похоже, что это не повлияло. Я пробовал использовать файлы R и txt для файла .Renviron. Мне не хватает чего-то вроде функции, которую я должен обернуть вокруг этой строки? - person Tom; 14.11.2020
comment
Отметим, что теперь я попробовал использовать пакет usethis для редактирования моего файла проекта .Renviron, и это сработало. Но это тоже не подействовало. - person Tom; 14.11.2020