Ошибка: не удалось загрузить пакет или пространство имен, объект ... не найден - PullRequest
0 голосов
/ 05 июля 2018

Я использую новую версию R (3.5.0) и RStudio (1.1.414). [Примечание. Я обновил до 3.5.1 и 1.1.453 и все еще испытываю описанные ниже проблемы, за исключением предупреждений «встроенный в R версии 3.5.1»]

Я установил пакет rlang, используя install.packages("rlang"), не столкнувшись ни с какими проблемами, но когда я пытаюсь загрузить пакет, я получаю следующую ошибку

Error: package or namespace load failed for ‘rlang’: .onLoad failed in loadNamespace() for 'rlang', details: call: dots_list(...) error: object 'rlang_dots_list' not found In addition: Warning message: package ‘rlang’ was built under R version 3.5.1

Я удалил и переустановил rlang (закрывающий перезапуск RStudio между каждой командой) и все еще сталкиваюсь с этой ошибкой.

Я также сталкиваюсь с рядом аналогичных (хотя, возможно, совершенно не связанных) проблем с другими пакетами

  1. RStudio выдает следующее предупреждение при каждом запуске

    [Workspace loaded from ~/.RData]
    
    Error in yaml.load(readLines(con), error.label = error.label, ...) : 
       object 'C_unserialize_from_yaml' not found
    Error in yaml.load(readLines(con), error.label = error.label, ...) : 
      object 'C_unserialize_from_yaml' not found
    
  2. библиотека (devtools) выдает следующие ошибки

    Error: package or namespace load failed for ‘devtools’ in FUN(X[[i]], ...):
     no such symbol digest in package //[redacted]/My 
    Documents/R/win-library/3.5/digest/libs/x64/digest.dll
    In addition: Warning message:
    package ‘devtools’ was built under R version 3.5.1 
    

Кто-то в твиттере спросил о результатах packageDescription("rlang")

Я скопировал вывод ниже на случай, если он поможет с устранением неполадок.

Package: rlang
Version: 0.2.1
Title: Functions for Base Types and Core R and 'Tidyverse' Features
Description: A toolbox for working with base types, core R features like the condition system, and core
        'Tidyverse' features like tidy evaluation.
Authors@R: c( person("Lionel", "Henry", ,"lionel@rstudio.com", c("aut", "cre")), person("Hadley", "Wickham",
        ,"hadley@rstudio.com", "aut"), person("RStudio", role = "cph") )
License: GPL-3
LazyData: true
ByteCompile: true
Depends: R (>= 3.1.0)
Suggests: crayon, knitr, methods, pillar, rmarkdown (>= 0.2.65), testthat, covr
RoxygenNote: 6.0.1
URL: http://rlang.tidyverse.org, https://github.com/r-lib/rlang
BugReports: https://github.com/r-lib/rlang/issues
NeedsCompilation: yes
Packaged: 2018-05-30 13:14:55 UTC; lionel
Author: Lionel Henry [aut, cre], Hadley Wickham [aut], RStudio [cph]
Maintainer: Lionel Henry <lionel@rstudio.com>
Repository: CRAN
Date/Publication: 2018-05-30 14:23:07 UTC
Built: R 3.5.1; x86_64-w64-mingw32; 2018-07-02 15:08:55 UTC; windows

-- File: [redacted]/My Documents/R/win-library/3.5/rlang/Meta/package.rds 

Ответы [ 3 ]

0 голосов
/ 12 июля 2018

У вас есть 3 разных предупреждения (дайджест, yaml и rlang), каждое из которых указывает, что файл DLL пакета поврежден. Вы делаете что-то очень неправильное при установке ваших пакетов.

Самая частая причина этой проблемы - попытка обновить пакет, пока он загружен в R (возможно, в другом процессе!). Это могло также быть вызвано плохой антивирусной программой, которая блокирует dll, который препятствует тому, чтобы это было обновлено. Пожалуйста, попробуйте следующие шаги:

  1. Выйти из всех сеансов R / Rstudio. Проверьте в taskmgr, что процесс Rterm или Rgui не запущен.
  2. Удалите папки yaml, rlang и digest внутри Documents\R\win-library\3.5\, а также внутри C:\Program Files\R\R-3.5.x\library\, если они там также существуют.
  3. Запустите R, чтобы подтвердить, что они исчезли. Запуск library(yaml) или library(rlang) должен выдать ошибку, например: нет пакета с именем "yaml" . Выйти R.
  4. Запустите новый R и запустите: install.packages(c("yaml", "rlang", "digest"))
  5. Обратите особое внимание на вывод, особенно на последние строки. Если вы видите предупреждение, как показано ниже, установка была повреждена, и вы должны удалить пакет!

enter image description here

0 голосов
/ 17 июля 2018

Отвечая на мой вопрос, если кто-то еще столкнется с подобной проблемой в будущем ...

Работая с моим рабочим ИТ-отделом, мы теперь привязали это к настраиваемым разрешениям на моей рабочей станции, которые означают, что пакеты R можно запускать только в предварительно заданных библиотеках (в моем случае «C: \ R \ R-3.4.3 \». библиотека").

Установка пакетов непосредственно в это местоположение устраняет проблему, но не желательна по всем причинам, по которым люди могут захотеть использовать пользовательские расположения (например, запускать несколько версий одного и того же пакета, сохраняя отдельные библиотеки для некоторых проектов).

Таким образом, есть два решения, которые могут быть более или менее достижимыми при использовании вашей собственной ИТ-системы.

  1. Убедите свой ИТ-отдел ослабить разрешения для пакетов R чтобы разрешить размещение пользовательских библиотек.
  2. Откажитесь и запустите все из «разрешенного» расположения библиотеки (например, C: \ R \ R-3.4.3 \ library)
  3. Поднимайте заявку в службу поддержки каждый раз, когда вам нужно установить пакет в определенном месте, и надеяться, что ИТ в конечном итоге сдастся.
0 голосов
/ 06 июля 2018

Подобные проблемы почти всегда возникают из-за ошибки в R в Windows: если переустановить пакет, включающий скомпилированный код, и если этот пакет уже загружен в R, библиотека DLL не будет обновлена.

Пожалуйста, попробуйте переустановить rlang на новом сеансе. Иногда пакеты загружаются автоматически при запуске из .RProfile, и вы можете проверить это, вызвав sessionInfo() после запуска.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...