微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法在 jupyter 中为 r 内核安装 tidyverse 包

如何解决无法在 jupyter 中为 r 内核安装 tidyverse 包

我最近使用 conda install -c r r-irkernel 安装了 Anaconda启用了 r 内核,我参考了:https://kyleake.medium.com/how-to-install-r-in-jupyter-with-irkernel-in-3-steps-917519326e41

现在从 jupyter notebook 开始,当我尝试安装 tidyverse 软件包时,我收到有关 jsonlite错误

Warning message:
"package 'tidyverse' was built under R version 3.6.3"
Error: package or namespace load Failed for 'tidyverse' in loadNamespace(j <- i[[1L]],c(lib.loc,.libPaths()),versionCheck = vI[[j]]):
 namespace 'jsonlite' 1.6 is already loaded,but >= 1.7.2 is required
Traceback:

1. library("tidyverse")
2. tryCatch({
 .     attr(package,"LibPath") <- which.lib.loc
 .     ns <- loadNamespace(package,lib.loc)
 .     env <- attachNamespace(ns,pos = pos,deps,exclude,include.only)
 . },error = function(e) {
 .     P <- if (!is.null(cc <- conditionCall(e))) 
 .         paste(" in",deparse(cc)[1L])
 .     else ""
 .     msg <- gettextf("package or namespace load Failed for %s%s:\n %s",.         sQuote(package),P,conditionMessage(e))
 .     if (logical.return) 
 .         message(paste("Error:",msg),domain = NA)
 .     else stop(msg,call. = FALSE,domain = NA)
 . })
3. tryCatchList(expr,classes,parentenv,handlers)
4. tryCatchOne(expr,names,handlers[[1L]])
5. value[[3L]](cond)
6. stop(msg,domain = NA)

似乎 jsonlite' 1.6 is already loaded,but >= 1.7.2 is required 是问题所在,所以当我尝试手动安装 jsonlite 时,我遇到了这个问题:

install.packages("jsonlite")


package 'jsonlite' successfully unpacked and MD5 sums checked
Warning message:
"cannot remove prior installation of package 'jsonlite'"Warning message in file.copy(savedcopy,lib,recursive = TRUE):
"problem copying C:\ProgramData\Anaconda3\Lib\R\library\00LOCK\jsonlite\libs\x64\jsonlite.dll to C:\ProgramData\Anaconda3\Lib\R\library\jsonlite\libs\x64\jsonlite.dll: Permission denied"Warning message:
"restored 'jsonlite'"

The downloaded binary packages are in
    C:\Users\viny\AppData\Local\Temp\RtmpADyCWE\downloaded_packages

那么我如何在 tidyverse package 中安装 jupyter notebook

解决方法

请勿混合使用 conda installinstall.packages。仅当包不在 conda 上时才使用 install.packages。 tidyverse 在 conda 上(请参阅 anaconda.org/r/r-tidyverse),因此您现在应该 remove.packages("tidyverse"),然后 conda install -c r r-tidyverse

您可能也有兴趣了解提供更多 R 包的 conda-forge 频道。

如果您还使用 Python,这也适用于混合 pip install 和 conda install - 这样做会以难以想象的方式破坏您的安装(请参阅 Is that a bad idea to use conda and pip install on the same environment?)。这在很大程度上可以归因于 conda 使用其自己的机制来处理库/包路径,并且与其他分发系统没有很好的交互。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?