2019-07-13Anaconda(转载的别人的)

Anaconda入门

Anaconda简介

Anaconda是一个方便的python包管理和环境管理软件,一般用来配置不同的项目环境。

我们常常会遇到这样的情况,正在做的项目A和项目B分别基于python2和python3,而第电脑只能安装一个环境,这个时候Anaconda就派上了用场,它可以创建多个互不干扰的环境,分别运行不同版本的软件包,以达到兼容的目的。

Anaconda通过管理工具包、开发环境、Python版本,大大简化了你的工作流程。不仅可以方便地安装、更新、卸载工具包,而且安装时能自动安装相应的依赖包,同时还能使用不同的虚拟环境隔离不同要求的项目。

anaconda的安装

windows下anaconda安装

非常简单,前往Anaconda官网即可下载安装,国内用户可以到清华大学TUNA镜像站下载,安装过程中注意到这一步

path.png

其中第一项指将Anaconda的默认环境设置添加到系统环境,也就是说如果你之前安装过python并添加到了环境,选了这一项之后原来的python会被覆盖掉,默认使用Anaconda的默认环境。

第二项指设置Anaconda的默认环境为python3.5.

安装完成后Anaconda会创建一个叫base的默认环境,如果你不切换到其他指定环境,就会一直在默认环境运行。

linux ubuntu系统Anaconda安装

下载Anaconda.sh 如果无法运行的话修改一下权限

sudo chmod +x 文件名

sudo ./文件名

看完版权声明设置完就好了

安装完成后如果没有加入系统环境windows需要通过Anaconda Prompt运行(anaconda prompt还有一个好处就是可以显示图表),如果加入系统环境变量就可以在cmd运行了

pystatus.png

我选择了加入系统变量,我们可以看到我的python显示为Anaconda版

anconda使用conda作为包管理工具,也就是anaconda把一些常用的python包统一管理,可以方便的安装、更新和卸载包。

conda常用命令

conda --version 查看conda版本conda -Vconda --help获取帮助conda -hconda update --helpconda remove --help

--help 都可以换成-h

Anaconda环境管理

接下来我们先研究单一环境下的Anaconda环境管理。

conda env --help

刚刚系统默认创建了名叫base的默认环境,我们可以使用conda命令查看当前有多少环境

conda env list 查看所有环境

或者

conda info --envs

condaenv.png

我们可以看到只有一个base,也就是刚刚安装的时候勾选的带有python3.5的环境,还有一些py3的包

如果现在我需要一个python2.7的和tensorflow1.0的环境该怎么办呢

输入

conda create --name your_env_name 

或者 

conda create -n your_env_name

your_env_name 就是你新创建的环境名,你可以在里面安装其他包但不会与现有环境冲突

如果你要在创建环境时指定包内容, 可以用

conda create -n your_env_name python=3.5

如果你要指定多个包 可以用

conda create -n your_env_name python=3.5 numpy pandas

要指定特殊版本号加上=版本号就行,默认是最新的

对了,安装前为了保障你查询到最新包情况,最好使用

`conda update --all 更新包信息。

例如我现在要创建一个名叫 learningpy的基于py3的环境

conda update --all

conda create -n learningpy python=3.7

create.png

系统会询问你是否创建,输入y回车后,系统将列出必要安装的包

conda有一点好处是,如果你需要安装一个包,系统将自动检查这个包需要的前置包并且安装,比如你要安装TensorFlow,而TensorFlow会用到很多像前置包像pandas、matiplot等,如果你在单纯的python下没有安装pandas等包就直接安装TensorFlow,那么和有可能无法使用,而使用conda安装TensorFlow将会询问你并自动帮你把缺少的前置包安装好

创建完新的环境我们查看环境列表

conda env list

list.png

只要你的硬盘够大,你就可以创造很多个不同的环境

那么现在我们有多个环境了,如何切换环境呢?

windows

activate 环境名

退出时记得退出命令哦

deactivate

linux和mac用户的命令不一样

source source activate 环境名

source deactivate 环境名

比如我现在进入刚刚创建的learningpy环境

activate learningpy

python --verion

lpy.png

是不是python已经变成了3.7版本,我现在的环境已经和刚刚的环境没有关系了~~~

一些常用命令

创建一个新环境想克隆一部分旧的环境condacreate-nyour_env_name--cloneoldname删除某个环境condaremove-nyour_env_name--all导出环境配置(非常有用,比如你想帮朋友安装和你一模一样的环境,你可以直接导出一个配置文件给他,就能免除很多人力安装调试)condaenvexport>environment.yml将会在当前目录生成一个environment.yml,你把它交给小伙伴或拷到另一台机器,小伙伴只需要对这个文件执行命令condaenvcreate-fenvironment.yml就可以生成和你原来一模一样的环境啦

anaconda包管理

上文我们提到了创建环境时的包管理,那么我们创建好环境后如何进行包的安装、更新和卸载呢?

当然我们任然可以通过pip安装更新删除

这里我们介绍conda

condalist列举当前环境下的所有包condalist-n packagename 列举某个特定名称包conda install packagename 为当前环境安装某包conda install -n envname packagename 为某环境安装某包conda search packagename 搜索某包conda updata packagename 更新当前环境某包conda update -n envname packagename 更新某特定环境某包conda remove packagename 删除当前环境某包conda remove -n envname packagename 删除某环境环境某包

conda本身和anaconda、python本身也算包

conda update conda

conda update anaconda

conda update python

conda默认源可能速度比较慢

可以添加其他源,常用的有清华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 --setshow_channel_urls yes 在包后面显示来源

第三条执行安装包时会显示来自哪个源,一目了然

source.png

教育网用户可以添加ipv6源,速度很快

conda config --add channels https://mirrors6.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --add channels https://mirrors6.tuna.tsinghua.edu.cn/anaconda/pkgs/main/conda config --setshow_channel_urls yes 在包后面显示来源

anaconda实现原理解析

anaconda在目录下的envs文件夹保存了环境配置,也就是把所有的安装在这个环境下的包放在同一个文件夹中

当创建一个新环境时,anaconda将在envs中创建一个新的文件夹,这个文件夹包括了你安装在这个环境中的所有包

anaconda通过巧妙的包管理解决的一个大难题,确实方便了很多。

下一期会讲如何在第三方软件中使用anaconda的不同环境配置。

作者:MachinePlay

链接:https://www.jianshu.com/p/742dc4d8f4c5

来源:简书

简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,924评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,781评论 2 378
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,813评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,264评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,273评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,383评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,800评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,482评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,673评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,497评论 2 318
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,545评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,240评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,802评论 3 304
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,866评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,101评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,673评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,245评论 2 341