Anaconda Jupyter中配置R运行环境

目录

  • Anaconda Jupyter中配置R运行环境
  • 引言
  • 配置过程
  • 总结实践测试后的配置方法
  • 记录实践的过程
  • 困难点1
  • 困难点2

引言

当学习一个R语言的程序包时,希望记录下来函数的功能,和示例代码运行数据,Jupyter notebook在此时可以发挥作用,它可以方便地展示学习记录、以及代码、以及代码的运行结果。

我电脑上已经安装了Anaconda(是为了使用spyder所以安装的Anaconda),然后第一次安装好Anaconda之后,打开Anaconda 的图形化navigator之后,就默认创建了一个环境(env),并且命名为root。

然后在打开Anaconda 的图形化navigator界面中,有Jupyter notebook的图标,所以我即点击Launch运行,却发现此时Jupyter notebook只支持python3 和Julia两种编程语言。所以如果想在Jupyter notebook中使用R语言,则需要进行一番配置。

配置过程

如何在Jupyter notebook中配置可以使用R语言的环境,搜索发现,以下两个网页信息十分有用:

  1. Using the R programming language in Jupyter Notebook
  2. Using R language with Anaconda

第一个是图形化的配置操作方法,第二个是使用conda命令行的操作方法。

理解操作步骤的原理就是,要在Anaconda默认创建好的root 环境之外,另外创建一个环境,可以命名为r_tutorial(第一个网页介绍的创建名称),或者r_env(第二个网页介绍的创建名称)。然后再激活这个环境即可。最后用Jupyter notebook打开这个env就可以在Jupyter notebook中使用R语言了。

总结实践测试后的配置方法

这里记录主要使用Anaconda prompt 命令行的操作方法:

  1. windows控制面板,卸载独立于Anaconda之外安装的python 和python的IDLE。
  2. Anaconda prompt 命令行输入 conda config --set show_channel_urls yes, 然后打开路径文件C:\Users\samsung.condarc,编辑文本以粘贴入下文中来自清华镜像站的使用配置代码(见困难2段落)。即配置好了Anaconda使用清华的镜像,以确保后续配置环境过程中下载速度有保障。
  3. 运行 conda clean -i 清除索引缓存,保证用的是清华镜像站提供的索引。
  4. 运行 conda create -n r_env r-essentials r-base ,即创建名为r_env的environment,对提示的下载输入y。下载后,即也完成了安装。
  5. 运行 conda activate r_env, 以激活环境。
  6. 运行 conda list 查看一下新创建的r_env环境中已经安装的package,应该包含很多熟悉的R语言package,并且都是以 r-开头的。
  7. 运行 conda activate r_env ,激活r_env环境。
  8. 运行 jupyter notebook ,即打开Jupyter notebook的浏览器,新建中选择R即可以开始用R语言进行Jupyter notebook笔记写作了。

以后再需要使用jupyter notebook 创作R语言的笔记时,直接打开anaconda Powershell prompt (Anaconda) 然后执行上述步骤的8 和9 即可。然后在浏览器打开的页面中,新建处选择R。

记录实践的过程

我是按照第二个介绍的conda命令行的操作方法进行实践的,首先打开Anaconda Prompt命令行终端,然后输入 conda create -n r_env r-essentials r-base ,即开始运行。

困难点1

开始运行不久,就弹出一个窗口报错,提示是python程序出错。但是命令行中又没有报错,这时再运行激活环境的代码时 conda activate r_env,发现又报错,提示没有该环境。这说明环境创建失败。所以我怀疑是独立于Anaconda之外在电脑上安装的python 程序造成了这个报错,所以我卸载了电脑上安装的python 以及python IDLE。之后重新运行create r_env的代码,发现就不报错了。开始提示要安装一些package,就是下载r-essentials r-base 还有environment所必需的一些文件,输入y 之后,即开始下载。

困难点2

开始下载之后就发现,下载进度特别慢,以至于最后提示下载失败。这应该是因为Anaconda的服务器位于国外,所以数据传输很慢导致下载失败。此时想到国内应该有Anaconda的镜像,搜索即发现清华镜像站中即有Anaconda的镜像资源(Anaconda 镜像使用帮助),并且提供了很好的镜像配置使用说明,如下:

TUNA 还提供了 Anaconda 仓库与第三方源(conda-forge、msys2、pytorch等,查看完整列表)的镜像,各系统都可以通过修改用户目录下的 .condarc 文件。Windows 用户无法直接创建名为 .condarc 的文件,可先执行 conda config --set show_channel_urls yes 生成该文件之后再修改。
channels:
  - defaults
show_channel_urls: true
channel_alias: https://mirrors.tuna.tsinghua.edu.cn/anaconda
default_channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

即可添加 Anaconda Python 免费仓库。

运行 conda clean -i 清除索引缓存,保证用的是镜像站提供的索引。

运行 conda create -n myenv numpy 测试一下吧。

所以基于上述清华Anaconda镜像站使用说明信息,我首先在Anaconda 命令行中运行,conda config --set show_channel_urls yes ,生成了用户目录下的 .condarc 文件(创建之后在我电脑上的完整路径是 C:\Users\samsung.condarc)。然后打开该文件粘贴上如上配置内容。即设置好了下载镜像。

然后再按照提示,运行 conda clean -i 清除索引缓存。

此时,应该开始创建environment了。所以我重新再运行,conda create -n r_env r-essentials r-base ,然后提示安装package时输入y,就开始下载了。这是就看到速度很可以了,几分钟左右即下载完成,并且命令行中提示运行激活环境的代码激活环境。所以运行激活环境代码, conda activate r_env。然后再运行一下, conda list 查看新创建的r_env环境中已经安装的package,可以看到R语言相关的package都是有 r- 开头的,同时还有其他package,包括python3.8。

再打开Anaconda 的navigator,可以在environment中看到root下面多了一个 r_env 的环境。这时,可以使用图形化的方式或命令行的方式打开r_env 的notebook。图形化方式就是,在r_env上右键,选择open with Jupyter Notebook。我这里使用命令行的方式,就是在Anaconda中输入 conda activate r_env ,然后再运行 jupyter notebook ,就发现打开了Jupyter notebook的浏览器,在页面右上角的新建处就可以选择R了。新建R之后就可以愉快地开始使用了。