【问题标题】:Unloading the package R6 2.2.0 in R 3.4.4在 R 3.4.4 中卸载包 R6 2.2.0
【发布时间】:2021-05-08 04:09:28
【问题描述】:

我在公司非常受控的环境中使用 R 3.4.4。

基本上我在加载插入符号包时遇到问题:

安装成功: install.packages("caret", repos="http://cran.rstudio.com/", type= 'binary') - 适用于 windows

现在当我尝试加载它时,我收到以下错误:

库(插入符号)

Error: package or namespace load failed for ‘caret’ in loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]]):
 namespace ‘R6’ 2.2.0 is already loaded, but >= 2.2.2 is required
In addition: Warning message:
package ‘caret’ was built under R version 3.4.4 

我的库中同时安装了 R6 2.2.0 和 R6 2.4.0。但是,如果我尝试卸载 R6 2.2.0,我会收到以下错误:

Error in value[[3L]](cond) : 
  Package ‘R6’ version 2.2.0 cannot be unloaded:
 Error in unloadNamespace(package) : namespace ‘R6’ is imported by ‘mrsdeploy’, ‘CompatibilityAPI’ so cannot be unloaded
In addition: Warning message:
package ‘R6’ was built under R version 3.4.4

请帮忙。提前致谢。

【问题讨论】:

  • 它不会卸载,直到所有导入它的东西也被卸载,尝试先卸载mrsdeployCompatibilityAPI,然后卸载R6,然后(根据需要)重新加载它们。如果这两个中的任何一个都无法卸载,则需要递归执行此操作。
  • 或者,是否可以选择启动一个干净的 R 会话(即,没有预加载包)?然后library("caret") 应该可以工作...
  • @r2evans 大获成功!你的解决方案奏效了。谢谢。
  • @Ben Bolker 在将问题发布到此处之前,我已经尝试过您的解决方案。没用。
  • @r2evans 或 OP 应该继续发布作为答案的评论......(FWIW 我怀疑你的“干净”会话没有你想象的那么干净,可能是因为你有重新加载工作区的.RData 文件?)

标签: r r-caret


【解决方案1】:

包依赖是罪魁祸首:如果包无法卸载,因为另一个包已经导入了它的一些功能,那么你需要首先卸载那个包。在这种情况下,应首先删除 mrsdeployCompatibilityAPI 包。请注意,这可能是递归的,因为从 那些 包中导入任何内容的任何内容都需要卸载。

建议使用干净的 R 会话重新启动,但您说它不起作用。我建议您重新启动 R,但这不是一个干净的 R 会话:如果有一个 .Rdata 文件或项目文件会自动加载上一个会话的数据和/或库,那么一个干净的会话就会开始...... pre-杂乱无章。在这种情况下,您可以通过手动启动 R(可能不在 RStudio 或您首选的 IDE 中)作为R --no-restore 来解决它,因为这不应该恢复(很好命名!).Rdata 文件。

【讨论】:

    猜你喜欢
    • 2017-11-27
    • 1970-01-01
    • 2019-01-29
    • 2014-12-28
    • 1970-01-01
    • 2015-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多