jupyter notebook配置-解决Anaconda虚拟环境中iRkernel连接失败的问题

iRkernel连接失败:

做单细胞分析最常用的软件包就是R语言的Seurat了。Seurat要求R语言版本不低于4.0,但我的集群服务器上只有R 3.6.0,而且我没有管理员权限,无法直接升级服务器上R的版本。因此,我创建了一个R 4.1.1的Anaconda虚拟环境,并安装了jupyter notebook和jupyter iRkernel(安装方法参考这篇),希望从笔记本浏览器打开jupyter notebook编辑运行R。

从本地成功连接服务器并打开jupyter notebook界面,已经可以创建R语言的notebook。
不幸的是,新创建的R notebook一直显示“内核正在启动,请等待”,稍后又显示“连接失败”,无法运行R语言。
jupyter notebook配置-解决Anaconda虚拟环境中iRkernel连接失败的问题_第1张图片


原因分析:

查看此时的控制台,即查看jupyter notebook命令运行的输出,发现打开新创建的R notebook后,出现该报错:

Error: package ‘digest’ was installed before R 4.0.0: please re-install it
Execution halted

提示重新安装’digest’包
因此我在终端进入R语言,在虚拟环境中重装’digest’包。


R语言装包路径修改

用.libPaths() 查看R包的默认安装位置,发现并没有定位在虚拟环境,因此创建/修改.Rprofile,将路径限定在虚拟环境(参考:如何永久改变R中 .libPaths()?)。一定要永久改变,用.libPaths()命令临时修改不能解决问题。
由于不知道如何修改虚拟环境的.Rprofile(与该stack overflow题主同病相怜),我直接在jupyter的默认工作路径创建了.Rprofile,写上虚拟环境的R语言装包路径:

$cat .Rprofile
.libPaths('.../.../Anaconda/envs/seurat4/lib/R/library')

进入R语言,查看libPaths,已经是设定的虚拟环境路径,安装’digest’包:

> .libPaths()
[1] "/.../.../.../Anaconda/envs/seurat4/lib/R/library"
> install.packages('digest')

安装成功,退出R。


连接成功:

重启jupyter notebook,打开R notebook,可以运行R代码啦!


你可能感兴趣的:(环境配置,jupyter,r语言,ide,anaconda)