anaconda使用总结
anaconda是一个比较完整的科学计算的包,其中包含了常见的python,jupyter,numpy,sklearn和其他依赖包,安装这个包的好处就是一劳永逸。只需安装这一个包,在python 的时候就可以任意moudles(当然日常谢谢代码是够用的了)。anaconda还有一个比较强大的是conda包管理机制,从这里安装软件也是比较方便的。
在安装了anaconda之后,python环境并不能立即生效,还是默认的使用的ubuntu自带的python2.7,这种情况下,即使你安装了anaconda包,但是其中的numpy等包也是不能调用的,因为默认的python2.7环境中不包含这些包。解决这个问题有三个办法,第一种是改别名,第二种是改变系统路径,第三种是创建conda环境。
添加别名
因为系统中存在不同的python版本,所以可以通过增加别名的方式来使用具体的python,语句如下
alias py27="/usr/bin/python2.7"
alias pyana="/home/nemo/anaconda3/bin/python3.5"(这是我自己的)
注意:
- alias别名声明一定要到具体的python版本,不能到文件夹
- 取消别名的命令是,
unalias py27
- 区别名的缺点是每次开机别名就取消了(当然你可以把上述声明别名的语句放到系统环境或者用户环境文件中去,那么每次开机,该声明语句就会执行一次,那么就不会失效了)
改变系统路径
系统路径在/etc/profile中修改,使用sudo vim /etc/profile进入文件,在文件最后一行,输入exprot PATH=/.../anaconda/bin:$PATH 其中...表示你的anaconda的安装路径,自行更改。更改之后重启,那么命令就可以生效了。在命令行中使用python命令,得到如下交互环境,
看到红线部分提示的Anaconda就表示现在python默认使用的是anaconda 的环境了。
当然如果你权限不够,可以在自己的家目录环境下修改,家目录(输入cd, 直接回车就是家目录)中使用 ls -al
命令可以看见.profile
文件,在其中进行上述修改即可。
创建conda环境
conda环境就是一个包含不同库和配置的python运行环境。可以这样理解,不同的环境之间是平行宇宙,可能一个宇宙中人们热爱caffee, 可能一个宇宙中的人们热爱tensorflow,他们的python版本可能不同,所拥有的库也可能不同(尤其是多个用户共用一个服务器跑数据的时候,有人用python2,有人用python3,这时候创建一个适合自己的环境,而且相互之间又不干扰就很有必要了)。所以为了便于管理,应该设置不同的环境。
我们在没有安装anaconda之前,ubuntu运行python2.7的环境就是一个环境,只不过这个环境中没有numpy等包,而且python版本也较低。然后我们可以通过conda命令在创建一个环境,这个环境中可以使用anaconda包的python版本,而且包含anaconda中的库,当然我们可以为这个环境安装其他的库(安装的库只属于该库)。
conda create --name pname python=3.5
#创建一个环境,pname是环境的具体名字,3.5是版本号,这里可以取任意版本,因为conda会自动下载
source activate pname
#该命令是激活刚才创建的环境,命令完成后,会发现在命令行提示符之前多了环境的名字
source deactivate
#该命令是退出当前环境,回到系统默认的环境
conda remove --name pname --all
#该命令表示删除创建的库,pname是待删除的库的名字
以上创建的环境都在.../anaconda/envs目录之下,对应相应地文件夹。
强大的conda包管理机制
在一般情况下,可以通过pip install或者apt-get install来安装包,在conda环境下,可以使用conda install进行安装。下面介绍:
conda install packagename
#该命令安装具体的包,-n 参数可以安装在指定名字的环境
conda list
#查看已经安装的包
conda list -n pname
#pname是环境名字,该命令可以查看某一环境下安装了哪些包
conda update -n panme packagename
#升级指定环境的某个包
conda remove -n pname packagename
#删除某个环境的某个包
这个conda命令不仅可以管理环境,管理包,而且还能管理自己,因为他将conda anaconda python等都视为一个普通的包。
conda update conda
conda update anaconda
conda update python