错误:包或名称空间加载失败,找不到对象

时间:2018-07-05 00:26:40

标签: r

我正在运行新安装的R(3.5.0)和RStudio(1.1.414)。 [请注意,我现在已更新至3.5.1和1.1.453,除了“在R版本3.5.1下构建”警告消息外,仍在遇到以下问题。

我已经使用install.packages("rlang")安装了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 
    

Twitter上有人要求提供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 :(得分:3)

您有3个不同的警告(digest,yaml和rlang),每个警告都表明程序包DLL文件已损坏。安装软件包时,您做错了什么。

此问题的最常见原因是试图在R中加载程序包时更新程序包(可能在另一个进程中!)。这也可能是由于锁定dll的防病毒程序错误而导致的,阻止了dll的更新。请尝试以下步骤:

  1. 退出所有R / Rstudio会话。检入taskmgr中没有RtermRgui进程正在运行。
  2. 删除yaml内的rlangdigestDocuments\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

答案 1 :(得分:0)

这类问题几乎总是来自Windows上的R中的错误:如果重新安装包含编译代码的软件包,并且该软件包已经加载到R中,则DLL将不会更新。

请尝试在新的会话上重新安装rlang。有时,程序包会在启动时从.RProfile自动加载,您可以在启动后通过调用sessionInfo()进行检查。

答案 2 :(得分:0)

回答我自己的问题,以防将来其他人遇到类似的问题...

我们现在与工作IT部门一起将其与工作站上的自定义权限相关联,这意味着R软件包只能在预先指定的库中运行(在我的情况下为“ C:\ R \ R-3.4.3 \图书馆”)。

直接将软件包安装到该位置即可解决此问题,但由于人们可能要使用自定义位置的所有原因(例如,运行同一软件包的多个版本,为某些项目保留单独的库),因此不希望这样做。

因此,根据您自己的IT系统,可能有两种或多或少可以实现的解决方案。

  1. 说服您的IT部门放宽对R软件包的许可 允许自定义库位置。
  2. 放弃并运行“允许的”库位置(例如C:\ R \ R-3.4.3 \ library)中的所有内容
  3. 每次需要将软件包安装到自定义位置并希望IT最终接受时,请提高支持票证。