(R) Ошибка при попытке загрузить пакет SQLDF - PullRequest
0 голосов
/ 11 февраля 2020

У меня возникли проблемы с запуском следующего кода:

install.packages("sqldf",dep=TRUE)
library(sqldf)
install.packages("RSQLite",dep=TRUE)
library(RSQLite)

После этого я собираюсь использовать функцию sqldf для выполнения некоторых запросов, но я застрял на ошибке, которую я Я не уверен, как решить, и у меня возникли проблемы с поиском других ответов о переполнении стека, которые могут быть полезны.

Ниже приводится ошибка, которую я получаю после выполнения первой строки:

 Loading required package: RSQLite
 Error: package or namespace load failed for ‘RSQLite’ in loadNamespace(i, c(lib.loc, .libPaths()),     versionCheck = vI[[i]]):
 namespace ‘rlang’ 0.4.0 is already loaded, but >= 0.4.2 is required
 Error: package ‘RSQLite’ could not be loaded

Затем я попытался запустить:

install.packages("rlang")

, но получил следующую ошибку:

package ‘rlang’ successfully unpacked and MD5 sums checked
Warning in install.packages :
  cannot remove prior installation of package ‘rlang’
Warning in install.packages :
  problem copying C:\Users\My Name\Documents\R\win-library\3.6\00LOCK\rlang\libs\x64\rlang.dll to     C:\Users\My Name\Documents\R\win-library\3.6\rlang\libs\x64\rlang.dll: Permission denied
Warning in install.packages :
  restored ‘rlang’

Я озадачен. Не уверен, как начать решать эту проблему. Любая помощь или понимание будут оценены! Спасибо!

1 Ответ

1 голос
/ 04 марта 2020

Обновление уже установленного пакета требует, чтобы R мог unload пакет. Обычно это можно сделать легко, но часто это может быть проблематично c, особенно с пакетами, в которых есть скомпилированные библиотеки (.so, .lib или .dll, в зависимости от SO). Я не знаю шагов, необходимых для распутывания общих объектов, подобных этим, но часто это просто не работает. Это может оставить процесс обновления в плохом состоянии: (1) не обновляется, но все еще может использоваться для этого и текущих сеансов; или (2) не обновлены, и хранилище на диске в частичном состоянии, которое нельзя использовать (возможно, в других состояниях).

Даже если возможно обновить пакеты с помощью общих объектов, единственный гарантированный способ (особенно если у вас возникли проблемы) перезапустите R в состояние, в котором этот пакет не загружен. Если вы загружаете пакеты автоматически (из-за .Rprofile или .Rdata), то вам нужно обязательно начать без этих мер (возможно, «новый проект» и / или временно вывести .Rprofile из путь).

Итак ... перезапустите R и повторите попытку установки / обновления всех сбойных пакетов.

...