数据分析标准环境Anaconda
1、Anaconda介绍
1.1概述
Anaconda
就是可以便捷获取包且对包能够进行管理,包括了python
和很多常见的软件库和一个包管理器conda
。常见的科学计算类的库都包含在里面了,使得安装比常规python
安装要容易,同时对环境可以统一管理的发行版本。
Anaconda
是专注于数据分析的Python
发行版本,包含了conda
、Python
等190多个科学包及其依赖项
1.2 特点
- 开源
- 安装过程简单
- 高性能使用
Python
和R
语言 - 免费的社区支持
1.3了解Anaconda
首先我们需要从python
本身说起,从根源寻找问题,我们在使用python
语言编写程序之前需要下载一个python
解释器,这才是python
的本体,没了python
解释器,我们即使写了无比正确优雅的python
脚本也没办法运行,那这个解释器在哪呢?就在你安装python
的地方。所有的第三方包都放在
site-packages
文件夹里面。最关键的,一个python
环境中需要有一个解释器,和一个包集合。解释器:解释器根据
python
的版本大概分为2
和3
。python2
和3
之间无法互相兼容,也就是说用python2
语法写出来的脚本不一定能在python3
的解释器中运行。包集合:包集合中包含了自带的包和第三方包,第三方包我们一般通过pip或者easy_install来下载,当一个python环境中不包含这个包,那么引用了这个包的程序不能在该python环境中运行。
python
环境解释完了,那么接下来就要说明这样的环境究竟产生哪些问题,因为anaconda
正式为了解决这些问题而诞生的。
- 到底该装
Python2
呢还是Python3
python2
和python3
在语法上是不兼容的,那我的机器上应该装python2
还是python3
呢,可能一开始选一个学习就好了,但是如果你要开发的程序必须使用python2
而不能使用python3
,那这时候你就不得不再下载一个python2
,那这时候环境变量该设谁的目录呢,如果还是切换环境变量岂不是很麻烦。
虽然目前Python3
使用的范围更广,但是Python3
小版本之前也存在一些差异
- 包管理
如果我在本地只有一个python环境那我所有程序用到的各种包都只能放到同一个环境中,导致环境混乱。另外当我将写好的程序放到另一电脑上运行时又会遇到缺少相关包,需要自己手动一个个下载的情况实在是烦人。要是能每个程序开发都选用不同的环境,而开发好之后又能将该程序需要的环境(第三方包)都独立打包出来就好了
1.4anaconda与virtualenv的对比
anaconda
是一个包含180+的科学包及其依赖项的发行版本。可以创建一个独立的Python环境,其包含的科学包包括:
conda, numpy, scipy, ipython,notebook
等
virtualenv
用于创建一个独立的Python环境的工具,新环境中需要手动安装需要的三方包
1.5pip与conda比较
依赖项检查
pip
不一定会展示所需其他依赖包
安装包时或许会直接忽略依赖项而安装,仅在结果中提示错误
conda
列出所需其他依赖包
安装包时自动安装其依赖项
可以便捷地在包的不同版本中自由切换
环境管理
pip
维护多个环境难度较大
conda
比较方便地在不同环境之间进行切换,环境管理较为简单
对系统自带Python
的影响
pip
在系统自带
Python
中包的更新/回退版本/卸载将影响其他程序
conda
不会影响系统自带
Python
适用语言
pip
仅适用于
Python
conda
适用于Python
,R
,Ruby
,Lua
,Scala
,Java
,JavaScript
,C/C++
,FORTRAN
。
conda
结合了pip
和virtualenv
的功能
2、Anaconda安装
- windows(参考图片流程)
1.单击Next
2.点击I Agree
3.All Users
4.更改安装路径
5.点击Install 安装
6.安装好点击下一步
7.继续下一步
8.点击完成
9.现在就
3、管理环境
Windows用户请打开Anaconda Prompt
,macOS和Linux用户请打开“终端”进行操作。
3.1 创建新环境
命令:conda create --name <env_name> <package_names>
说明:默认情况下,新创建的环境将会被保存在/Users/<user_name>/anaconda3/env
目录下。其中,<user_name>
为当前用户的用户名。
env_name
:即创建的环境名,建议以英文命名,且不加空格,名称两边不加尖括号< >
package_names
:即安装在环境中的包名,名称两边不加尖括号< >
如果要安装指定的版本号,则只需要在包名后面以=
和版本号的形式执行。如:conda create --name env1 python=2.7
,即创建一个名为"python2"的环境,环境中安装版本为2.7的python。如果要在新创建的环境中创建多个包,则直接在
<package_names>
后以空格隔开,添加多个包名即可。如:conda create --name env2 python=3.7 numpy pandas
,即创建一个名为"python3"的环境,环境中安装版本为3.7的python,同时也安装了numpy和pandas
--name
:可以替换为-n
3.2 切换环境
Linux&macOS:conda activate <env_name>
windows:activate <env_name>
说明:
如果创建环境后安装Python
时没有指定Python
的版本,那么将会安装与Anaconda
版本相同的Python
版本,即如果安装Anaconda
第2版,则会自动安装Python 2.x
;如果安装Anaconda
第3版,则会自动安装Python 3.x
。当成功切换环境之后,在该行行首将以
(env_name)
或[env_name]
开头。其中,env_name
为切换到的环境名。
3.3 退出环境至物理环境
Linux&macOS:conda deactivate
windows:deactivate
3.4 显示已创建环境
conda info --envs
或conda info -e
或conda env list
3.5 复制环境
命令:conda create --name <new_env_name> --clone <copied_env_name>
copied_env_name
:即为被复制/克隆环境名,环境名两边不加尖括号< >
new_env_name
:即为复制之后新环境的名称,环境名两边不加尖括号< >
3.6 删除环境
命令:conda remove --name <env_name> --all
4、包管理
4.1 获取当前环境中已安装的包信息
conda list
4.2查找可供安装的包版本
- 精确查找
命令:
conda search --full-name <package_full_name>
--full-name
:为精确查找的参数<package_full_name>
:是被查找包的全名。包名两边不加尖括号“<>” - 模糊查找
命令:
conda search <text>
<text>
:是查找含有“此字段”的包名。此字段两边不加尖括号“<>”
4.3 安装包
- 在当前环境中安装包
conda install <package_name>
- 指定版本号
conda install <package_name>=version
- 在指定环境中安装包
conda install --name <env_name> <package_name>
- 使用pip安装包
pip install <package_name>
说明:当使用conda install
无法进行安装时,可以使用pip
进行安装。
注意:
pip
只是包管理器,无法对环境进行管理。因此如果想在指定环境中使用pip
进行安装包,则需要先切换到指定环境中,再使用pip
命令安装包。pip
无法更新python
,因为pip
并不将python
视为包。pip
可以安装一些conda
无法安装的包;conda
也可以安装一些pip
无法安装的包。因此当使用一种命令无法安装包时,可以尝试用另一种命令。
- 从
Anaconda.org
安装包
说明:当使用conda install
无法进行安装时,可以考虑从Anaconda.org
中获取安装包的命令,并进行安装,浏览器中输入http://anaconda.org
(无需注册)。
4.4 卸载包
- 卸载当前环境中的包
conda remove <package_name>
- 卸载指定环境中的包
conda remove --name <env_name> <package_name>
4.5 更新包
- 更新指定包
conda update <package_name>
或conda upgrade <package_name>
说明:更新多个指定包,则包名以空格隔开,向后排列。
例如:conda update pandas numpy matplotlib
即更新pandas
、numpy
、matplotlib
包。
- 更新所有包
conda update --all
或conda upgrade --all
说明:在安装Anaconda
之后执行上述命令更新Anaconda
中的所有包至最新版本,便于使用。