Anaconda原理解析及使用

anaconda想必大家都不陌生,属于使用python的重要工具,更是学习机器学习、深度学习的必备工具。在搭建环境过程中,感觉出现的许多问题根源在于对于anaconda的基本原理理解不到位,导致许多无效操作。为此,我重温了一遍anaconda的相关背景知识,希望对各位也能有所收获。

python解释器

首先我们需要从python本身说起,从根源寻找问题,我们在使用python语言编写程序之前需要下载一个python解释器,这才是python的本体,没了python解释器,我们即使写了无比正确优雅的python脚本也没办法运行,那这个解释器在哪呢? 就在你安装python的地方。

Anaconda原理解析及使用_第1张图片

 所有的第三方包都放在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环境那我所有程序用到的各种包都只能放到同一个环境中,导致环境混乱。另外当我将写好的程序放到另一电脑上运行时又会遇到缺少相关包,需要自己手动一个个下载的情况实在是烦人。要是能每个程序开发都选用不同的环境,而开发好之后又能将该程序需要的环境(第三方包)都独立打包出来就好了

与virtualenv的对比

anaconda

是一个包含180+的科学包及其依赖项的发行版本。可以创建一个独立的Pvthon环境,其包含的科学包包括: conda,numpy,scipy,ipython notebook等

virtualenv

用于创建一个独立的Python环境的工具,新环境中需要手动安装需要的三方包

pip与conda比较

依赖项检查

pip

不一定会展示所需其他依赖包

安装包时或许会直接忽略依赖项而安装,仅在结果中提示错误

conda

列出所需其他依赖包
安装包时自动安装其依赖项
可以便捷地在包的不同版本中自由切换

环境管理

pip

维护多个环境难度较大

conda

比较方便地在不同环境之间进行切换,环境管理较为简单

对系统自带Python的影响

pip

在系统自带Pvthon中包的更新/回退版本/卸载将影响其他程序

conda

不会影响系统自带Python

适用语言

pip

仅适用于Python

conda

适用于Python,R,Ruby, Lua,Scala,Java,JavaScript,C/C++,FORTRAN

conda结合了pip和virtualenv的功能

Anaconda虚拟环境的管理

 打开anaconda prompt

创建新环境

conda create --name

 例如:  conda create --name env1 python==2.7

创建了一个名为env1的环境,python版本为2.7

默认情况下,新创建的环境将会保存在/Users//anaconda3/env目录下,其中,为当前用户的用户名

env_name:即为新创建的环境名,建议使用英文进行命名,且不加空格,名称两边不加尖括号“<>”

package_names:即安装在环境中的包名,名称两边不添加尖括号<>

如果要在新创建的环境中创建多个包,则直接在后以空格隔开,添加多个包名即可。如:a,即创建了一个名为“python3”的环境,环境中安装版本为3.7的python,同时也安装了numpy和pandas

--name 也可以替换成-n

说明:

  • 如果创建环境后安装Python时没有指定Python的版本,那么将会安装与Anaconda版本相同的Python版本,即如果安装Anaconda第2版,则会自动安装Python 2.x;如果安装Anaconda第3版,则会自动安装Python 3.x
  • 当成功切换环境之后,在该行行首将以"(env_name)"或"[env_name]"开头。其中, “"env_name"为切换到的环境名

退出环境至物理环境

deactivate

显示已创建环境 

conda info  --envs 

或者 conda info -e  或者  conda env list

结果中*所在行即为当前所在环境

复制环境

conda create --name --clone

copied_env_name:即为被复制/克隆环境名,环境名两边不加尖括号"<>"
new_env_name∶即为复制之后新环境的名称,环境名两边不加尖括号"<>"

删除环境

 conda remove --name --all 

包管理 

获取当前环境中已安装的包信息

conda list

查找可供安装的包版本

  • 精确查找

conda search --full-name

--full-name:为精确查找的参数
︰是被查找包的全名。包名两边不加尖括号"<>"

  • 模糊查找

conda search

:是查找含有“此字段"的包名。此字段两边不加尖括号"<>”

 安装包

 在当前环境中安装包

conda install

指定版本号

conda install =versiono

在指定环境中安装包

conda install --name

使用pip安装包

pip install

说明:当使用conda install无法进行安装时,可以使用pip进行安装

注意:

  • pip只是包管理器,无法对环境进行管理。因此如果想在指定环境中使用pip进行安装包,则需要先切换到指定环境中,再使用pip命令安装包
  • pip无法更新python,因为pip并不将python视为包
  • pip可以安装一些conda无法安装的包;conda也可以安装一些pip无法安装的包。因此当使用一种命令无法安装包时,可以尝试用另—种命令

从Anaconda.org安装包

说明:当使用conda install 无法进行安装时,可以考虑从Anaconda.org中获取安装包的命令,并进行安装.浏览器中输入http:/ /anaconda.org (无需注册)

Anaconda原理解析及使用_第2张图片 

Anaconda原理解析及使用_第3张图片 

复制To install this package with conda run:"下方的命令,并粘贴在终端中执行 

Anaconda原理解析及使用_第4张图片 

 卸载包

卸载当前环境中的包

conda remove

卸载指定环境中的包

conda remove --name

更新包

更新指定包

conda update 或conda upgrade

说明︰更新多个指定包,则包名以空格隔开,向后排列。例如:conda updatepandas numpy matplotlib即更新pandas、numpy、matplotlib包
更新所有包

conda update --all或conda upgrade --all

说明:在安装Anaconda之后执行上述命令更新Anaconda中的所有包至最新版本,便于使用。

你可能感兴趣的:(Python数据分析,pytorch,人工智能,python)