【全&细】在WSL中安装Anaconda3并建立独立环境

前言:anaconda作为python包管理器,有很多便利之处。但是需要规范使用并注意一些细节,以避免版本冲突和库文件冲突,重蹈卸载anaconda之覆辙。WSL是Windows下的linux系统,相较于虚拟机有很大优势。
1.在windows商店中安装Windows Subsystem for Linux(WSL)。注:需要在开发者模式种勾选启用WSL。安装完成后将sources.list更换清华源,网址https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/,以提高各种下载速度。这里只是为了提醒,不赘述。另外记得改成允许远程连接,这样就可以用xshell连WSL了,而不用忍受WSL本身的别扭手感。

2.进入https://repo.anaconda.com/archive/,根据计算机是32位或64位选择版本,下载anaconda for linux。我使用的是Anaconda3-5.2.0-Linux-x86_64.sh。
3.在终端命令行中输入wget命令下载
$ wget https://repo.continuum.io/archive/Anaconda3-5.2.0-Linux-x86_64.sh
当然,考虑到国内的网络,我们也可以从其他国内渠道下载。
4.运行脚本
$ bash Anaconda3-5.2.0-Linux-x86_64.sh
5.提示输入yes同意条款,输入yes同意安装路径。
6.提示安装VS Code,不要在这里装,下载会很慢。
7.关闭当前终端,重新打开。
8.如果命令行最左边多了"(base)",且输入conda list,出现:
# packages in environment at /home/*/anaconda3:
……

就说明好了。
9.修改~/.bashrc
$ vi ~/.bashrc
加入如下两句:

这样以后你输入 conda deactivate 退出anaconda,再在命令行中输入conda activate就启动anaconda了。

10.建立环境。
base就是基础环境,但是我们万万不可直接在base上做事情,因为你做项目会发现很多packages的版本都是不兼容的,比如numpy高低版本的写法不同之类的。如果你遇到这种问题,你不仅要重装,还要经历一段崩溃。
因此,我们给每个独立的项目建立独立的环境,只要保证在这个项目里的packages兼容就行了。
那么怎么建立呢?
在anaconda命令行(即左边有base的命令行)下,输入:
$ conda create --name SUNNY python=3
这个命令会建立一个名为SUNNY 的环境,且使用python3。
输入y以继续。
装好后,输入
$ conda activate SUNNY
左边的括号就会从base变成SUNNY,这提醒了你这是在SUNNY 而不是base环境中。
11. 冲突警告
linux中有一些库,在/usr/lib中,比如cmake。在安装好anaconda后,系统中多了anaconda的库。这个时候你在cmake的时候,系统会报错存在“冲突”,这是因为编译不知道应该用linux的库还是anaconda的库。我们输入
$ echo $PATH
会发现里面有anaconda的路径
/home/sun/anaconda3/bin:/home/sun/anaconda3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
因此在使用cmake编译之前,我们要把之前~/.bashrc的anaconda的两行注释掉,等编译完成后再取消注释。

注释之后再输入
$ echo $PATH
如果anaconda的路径没了就可以放心地编译了。
12. 装包
基本语法:
$ conda install **
需要用什么自己鼓捣。别忘了建立新环境(毕竟弄坏了可以直接删)。
13. 安装jupyter notebook
在自己建立的环境中输入
$ conda install -c conda-forge jupyterlab
输入y选择确认即可。具体怎么用就不细说了,反正很适合WSL,因为你可以直接把给的网址复制到自己的浏览器里,直接在浏览器里编程,而不用非得在命令行里敲。
参考资料:
https://gist.github.com/kauffmanes/5e74916617f9993bc3479f401dfec7da
https://zhuanlan.zhihu.com/p/95497832