文章目录
1. Anaconda概述
Anaconda是一个用于科学计算的Python发行版,支持Linux,Mac,Windows系统,提供了包管理与环境管理的功能,可以很方便地解决多版本python并存、切换以及各种第三方包安装问题。Anaconda利用工具/命令conda来进行package和environment的管理,并且已经包含了Python和相关的配套工具。
在这里我们要区别一下Anaconda和conda的概念。conda其实就是一个命令,类似于pip一样专门用于管理各种第三方包,方便用户快速切换不同Python版本环境,其核心功能就是包管理和环境管理。对于Anaconda来说,它是一个各种包的集成容器,包含了conda命令、各种版本Python、各种第三方Python包。
2. Anaconda安装
Anaconda下载的官方网址,支持Linux,Mac,Windows系统。下载时,你会发现Anaconda有个两个版本,分别对应着Python2.7和Python3.5两个版本。我建议最好下载Python2.7版本,因为Python开源代码一般都会用Python2.7。(linux安装anaconda教程)
安装Anaconda时不要以root权限安装,同时安装过程最好选择默认选项,最后在Linux的用户目录下创建一个叫anconda2文件夹。这样的好处,同一台主机的不同用户可以安装自己的anaconda,配置自己的Python环境,大家不相互影响。
对于Windows安装时,anaconda会自动将添加PATH环境变量;不过此处有高能,之前在win7上安装的时候确实在选择了Add path to your environment之后会自动把path添加到环境变量里面,但是不知道为什么却始终提示不是内部命令,然后重装好几次都不行,最终的解决方案是不勾选,然后添加几个路径到path的后面,添加的路径有:
#####这里我的安装路径是D:\Anaconda3 自行修改
D:\Anaconda3;
D:\Anaconda3\Scripts;
D:\Anaconda3\Library\bin;
对于Mac,Linux安装时,我们需要手动添加PATH环境变量,如下操作:
# 将anaconda的bin目录加入PATH,根据版本不同,也可能是~/anaconda3/bin
echo 'export PATH="~/anaconda2/bin:$PATH"' >> ~/.bashrc
# 更新bashrc以立即生效
source ~/.bashrc
安装完成后输入conda --version检查是否安装成功。
3. Conda的环境管理
Conda命令可以允许安装不同Python版本的包,并且能够自由切换。假设我们安装的是Python2.7版的anaconda,现在我们想在此anaconda安装Python3.5和其相关的包。我们需要做的操作如下所示:
# 创建一个名为python35的环境,指定Python版本是3.5(不用管是3.5.x,conda会为我们自动寻找3.5.x中的最新版本)
conda create --name python35 python=3.5
conda create -n python35 python=3.5 ipykernel ## 创建环境的同时,创建jupyter环境
# 安装好后,使用activate激活某个环境
activate python35 # for Windows
source activate python35 # for Linux & Mac
# 激活后,会发现terminal输入的地方多了python35的字样,实际上,此时系统做的事情就是把默认2.7环境从PATH中去除,再把3.5对应的命令加入PATH
# 此时,再次输入
python --version
# 可以得到`Python 3.5.5 :: Anaconda 4.1.1 (64-bit)`,即系统已经切换到了3.5的环境
# 如果想返回默认的python 2.7环境,运行
deactivate python35 # for Windows
source deactivate python35 # for Linux & Mac
# 删除一个已有的环境
conda remove --name python35 --all
用户安装的不同版本Python环境都会放在目录~/ananconda2/envs下,可以用命令conda info -e查看已安装的环境,当前被激活的环境会显示有一个星号。
4. Conda的包管理
Conda包的管理模式类似于pip。例如我们要安装scipy:
# 安装scipy
conda install scipy
# conda会从从远程搜索scipy的相关信息和依赖项目,对于python 3.4,conda会同时安装numpy和mkl(运算加速的库)
# 查看已经安装的packages
conda list
# 最新版的conda是从site-packages文件夹中搜索已经安装的包,不依赖于pip,因此可以显示出通过各种方式安装的包
conda一些常用操作如下:
# 查看当前环境下已安装的包
conda list
# 查看某个指定环境的已安装包
conda list -n python35
# 查找package信息
conda search numpy
# 安装package
conda install -n python35 numpy
# 如果不用-n指定环境名称,则被安装在当前活跃环境
# 也可以通过-c指定通过某个channel安装
# 更新package
conda update -n python35 numpy
# 删除package
conda remove -n python35 numpy
conda命令亦可以用来管理conda和python的版本:
# 更新conda,保持conda最新
conda update conda
# 更新anaconda
conda update anaconda
# 更新python
conda update python
# 假设当前环境是python 3.5, conda会将python升级为3.5.x系列的当前最新版本
如果创建Python3.5新环境,运行conda create -n python35 python=3.5之后,conda只会安装python3.5的必需项,如python,pip等,如果希望像安装anaconda的Python2.7环境那样安装anaconda常用包,我们需要进行如下操作:
# 在当前环境下安装anaconda包集合
conda install anaconda
# 结合创建环境的命令,以上操作可以合并为
conda create -n python35 python=3.5 anaconda
# 也可以不用全部安装,根据需求安装自己需要的package即可
5. 设置国内镜像
由于anaconda官方镜像的服务器在国外,下载包时速度不快,所以我们可以设置国内镜像,比如清华大学镜像:
# 添加Anaconda的TUNA镜像
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels
# TUNA的help中镜像地址加有引号,需要去掉
# 设置搜索时显示通道地址
conda config --set show_channel_urls yes
执行完上述命令后,会生成~/.condarc(Linux/Mac)或C:\Users\USER_NAME.condarc文件,记录着我们对conda的配置,直接手动创建、编辑该文件是相同的效果。
修改完成后可以通过:conda config --show channels
查看设置的channels,另外删除添加的channel可用conda config --remove channels 'https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/'
,更多的命令请查看命令手册。
上述是修改的conda的镜像,但是这样修改完pip可能还是无效,pip 可参考链接或如下:
step1:设置pip代理(如果是公司内网,否则可跳过)(由于该步骤是临时设置代理,每次使用pip之前要设置,如果想永久设置,需要修改配置相关文件,详:python pip 代理设置
set http_proxy=http://web-proxy.xxx.com:8080
set https_proxy=http://web-proxy.xxx.com:8080
step2:设置pip源
配置conf文件,linux/mac下,修改~/.pip/pip.conf,修改index-url即可。
windows环境下,在C:\Users\XXX\pip目录下(没有则创建),新建pip.ini文件。
文件中添加如下:(清华源)
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host=pypi.tuna.tsinghua.edu.cn
也可直接这样去安装:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pkg-name --trusted-host pypi.tuna.tsinghua.edu.cn或者上面两步合并起来手工写出来:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --proxy http://web-proxy.xxx.com:8080 pkg-name --trusted-host pypi.tuna.tsinghua.edu.cn
可用链接:
http://pypi.douban.com/simple/
https://pypi.mirrors.ustc.edu.cn/simple/
https://mirrors.aliyun.com/pypi/simple/
6. 安装常用包
opencv3
conda install -c conda-forge opencv
Linux下系统自带python和Anaconda切换
那么,如果在~/.bashrc中修改文件的话,即加入export PATH="/home/myname/anaconda2/bin:$PATH",则输入python命令就会直接出来Anaconda环境下的python,当然,用TensorFlow是好的,用caffe就。。。。。。。因此,用caffe的话,我就会把这行去掉,再重新source ~/.bashrc.
这样做是麻烦了一些,但是那怎么办呢?我就想在caffe下使用自带python,在tensorflow的时候使用Anaconda。
于是,学到了一个“技巧”,叫做别名声明alias。
具体用法:
alias py27="/usr/bin/python2.7"
alias pyana="/home/myname/anaconda2/bin/python2.7" (我自己的,一定要精确到python的版本,不能只到文件夹)
这样在使用系统自带python的时候,只需要在命令行输入py27即可,用Anaconda,输入python或者pyana都可。
注意:
- ~/.bashrc的文件中,export PATH="/home/myname/anaconda2/bin:$PATH"还是要加上的
- 上面两行在每次开机的时候都是要输入的,如果不想每次都输入,则要将这两行加入~/.bashrc的文件中
- 如果想取消别名声明,用unalias py27或者删除~/.bashrc中的PATH,并且重新source ~/.bashrc
参考网址: 链接