Anaconda 入门
Python 真的是一个好东西,但是也可能不是一个好东西,对于喜爱Java的我来说,动态一时爽,重构火葬场,不太喜欢python的缩进风格表示代码块,调试都不好调试,然后也不太适合团队合作,甚至过几天自己都会看不懂自己写的啥代码,用java的话就不会有这样的问题。说了这么多好像python一无是处似的,当然不是,python人工智能火爆,以后用python构建人工智能前途太光明,薪资是真的高,所以,我忍了。
言归正传,今天讲的是 Anaconda的使用
为什么用Anaconda
在使用python开发的时候,你可能会遇到一个非常蛋疼的问题:到底是安装python2还是python3呢?大多数人会选择安装Python3,但是在以后的开发中避免不了还要使用python2 ,有人说那就安装两个python,在path 环境变量中把python2 和python3目录都装上,然后改一下python2中的python.exe 和pip.exe ,改为pip2.exe 和 python2.exe ,不失为一个好办法,但是并不是所有人都知道我在说啥,并且这样做还会有一些意想不到的麻烦产生(做项目越多就越会体会到这样的弊端,导致你安装一些工具包的时候总是出错),所以为啥要用Anaconda呢?就是因为python环境的问题一直困苦者python开发人员。
什么是Anaconda
Anaconda是专注于数据分析的Python发行版本,包含了conda、Python等190多个科学包及其依赖项。
Anaconda就是一个python的发行版,里面包含了一些数据分析的库,也就是一个别人弄好的一个环境 ,拿来就直接用,不用再自己费尽安装各种各样的库了。
Anaconda如何解决上面提到的问题
Anacon 中包含conda ,conda是python的开源包和虚拟环境的管理系统,用conda 可以安装第三方包,但是在Anaconda安装的时候会默认安装好190多个常用的第三方包,在一般的数据分析工作时不用再安装额外的包。另外可以使用conda 创建一个虚拟环境,指定虚拟环境的python版本,创建好一个虚拟环境之后可以激活虚拟环境,这样就切换到了虚拟环境中,不再使用虚拟环境后还可以回到系统的base环境中。切换python版本非常的方便。所以Anaconda 通俗来讲就是一个可以创建任意版本的python虚拟环境并带有丰富的一些数据分析常用的库的一个工具包。
Anaconda 下载安装
推荐使用清华大学的镜像网站来下载,比较快,官网实在是太慢了,安装过程不赘述,和安装普通软件无差别。
###
Conda的环境管理
使用conda创建虚拟环境,并在虚拟环境中切换
# 创建一个名为python34的环境,指定Python版本是3.4(不用管是3.4.x,conda会为我们自动寻找3.4.x中的最新版本)
conda create --name python34 python=3.4
# 安装好后,使用activate激活某个环境
activate python34 # for Windows
source activate python34 # for Linux & Mac
# 激活后,会发现terminal输入的地方多了python34的字样,实际上,此时系统做的事情就是把默认python环境从PATH中去除,再把3.4对应的命令加入PATH
# 此时,再次输入
python --version
# 可以得到`Python 3.4.5 :: Anaconda 4.1.1 (64-bit)`,即系统已经切换到了3.4的环境
# 如果想返回默认的python环境,运行
deactivate python34 # for Windows
source deactivate python34 # for Linux & Mac
# 删除一个已有的环境
conda remove --name python34 --all
可以在命令中运行conda info -e
查看已安装的环境,当前被激活的环境会显示有一个星号或者括号
Conda 包管理
比如像安装一个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 python34
# 查找package信息
conda search numpy
# 安装package
conda install -n python34 numpy
# 如果不用-n指定环境名称,则被安装在当前活跃环境
# 也可以通过-c指定通过某个channel安装
# 更新package
conda update -n python34 numpy
# 删除package
conda remove -n python34 numpy
- 版本管理:
# 更新conda,保持conda最新
conda update conda
# 更新anaconda
conda update anaconda
# 更新python
conda update python
# 假设当前环境是python 3.4, conda会将python升级为3.4.x系列的当前最新版本
如果创建新的python环境,比如3.4,运行conda create -n python34 python=3.4
之后,conda仅安装python 3.4相关的必须项,如python, pip等,如果希望该环境像默认环境那样,安装anaconda集合包,只需要:
# 在当前环境下安装anaconda包集合
conda install anaconda
# 结合创建环境的命令,以上操作可以合并为
conda create -n python34 python=3.4 anaconda
# 也可以不用全部安装,根据需求安装自己需要的package即可
- 更改默认镜像地址:conda下载的速度经常很慢,因为Anaconda.org的服务器在国外。清华TUNA镜像源有Anaconda仓库的镜像,在国内可以使用清华大学的镜像,设置如下:
# 添加Anaconda的TUNA镜像
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
# TUNA的help中镜像地址加有引号,需要去掉
# 设置搜索时显示通道地址
conda config --set show_channel_urls yes
- 补充:使用pip安装第三方包的时候可能会出现如下错误:
Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ConnectTimeoutError
比如安装tensorflow的时候就会出现这个问题,这里需要改用国内的pip镜像:
清华大学:https://pypi.tuna.tsinghua.edu.cn/simple/
阿里云:http://mirrors.aliyun.com/pypi/simple/
中国科技大学:https://pypi.mirrors.ustc.edu.cn/simple/
在进行pip 安装的时候再后面加上 -i 网址即可
pip install --upgrade --ignore-installed tensorflow
改为:
pip install --upgrade --ignore-installed tensorflow -i https://pypi.tuna.tsinghua.edu.cn/simple/