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 -V
conda --help   获取帮助
conda -h
conda update --help
conda 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版本,我现在的环境已经和刚刚的环境没有关系了~~~
一些常用命令

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

anaconda包管理

上文我们提到了创建环境时的包管理,那么我们创建好环境后如何进行包的安装、更新和卸载呢?
当然我们任然可以通过pip安装更新删除
这里我们介绍conda

conda list 列举当前环境下的所有包
conda list -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 --set show_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 --set show_channel_urls yes 在包后面显示来源

anaconda实现原理解析

anaconda在目录下的envs文件夹保存了环境配置,也就是把所有的安装在这个环境下的包放在同一个文件夹中
当创建一个新环境时,anaconda将在envs中创建一个新的文件夹,这个文件夹包括了你安装在这个环境中的所有包
anaconda通过巧妙的包管理解决的一个大难题,确实方便了很多。
下一期会讲如何在第三方软件中使用anaconda的不同环境配置。

作者:MachinePlay
链接:https://www.jianshu.com/p/742dc4d8f4c5
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

Anaconda简单入门相关推荐

  1. 【Jupyter Notebook的简单入门使用】

    [Jupyter Notebook的简单入门使用] 简单介绍 安装与配置 简单使用 Markdown 关闭 简单介绍 Jupyter官网 Jupyter Notebook 介绍 简单来讲,它是一个网页 ...

  2. BizTalk 2006 简单入门示例程序(附源项目文件下载)

    BizTalk 2006 简单入门示例程序(附源项目文件下载) 为初学BizTalk Server 2006的开发人员,提供一个简单入门的示例程序,包括一个Receive Port.Send Port ...

  3. python如何读取mat文件可视化_python Matplotlib数据可视化(1):简单入门

    1 matplot入门指南 matplotlib是Python科学计算中使用最多的一个可视化库,功能丰富,提供了非常多的可视化方案,基本能够满足各种场景下的数据可视化需求.但功能丰富从另一方面来说也意 ...

  4. ARM NEON 编程简单入门1

    原文:http://blog.csdn.net/silentob/article/details/72954618  ARM NEON 编程简单入门1 NEON简介 NEON是适用于ARM Corte ...

  5. Python 简单入门指北(二)

    Python 简单入门指北(二) 2 函数 2.1 函数是一等公民 一等公民指的是 Python 的函数能够动态创建,能赋值给别的变量,能作为参传给函数,也能作为函数的返回值.总而言之,函数和普通变量 ...

  6. EChart.js 简单入门

    EChart.js 简单入门 最近有一个统计的项目要做,在前端的数据需要用图表的形式展示.网上搜索了一下,发现有几种统计图库. MSChart   这个是Visual Studio里的自带控件,使用比 ...

  7. 【我的区块链之路】- Hyperledger fabric的简单入门(四)链码的编写及调试

    [我的区块链之路]- Hyperledger fabric的简单入门(四)链码的编写及调试       之前的文章中我们有讲过了fabric的一些核心的配置文件的选项说明,讲过fabric 的网络启动 ...

  8. 基于vue-cli、elementUI的Vue超简单入门小例子

    基于vue-cli.elementUI的Vue超简单入门小例子 这个例子还是比较简单的,独立完成后,能大概知道vue是干嘛的,可以写个todoList的小例子. 开始写例子之前,先对环境的部署做点简单 ...

  9. 【java开发系列】—— spring简单入门示例

    回顾 1 JDK安装 2 Struts2简单入门示例 前言 作为入门级的记录帖,没有过多的技术含量,简单的搭建配置框架而已.这次讲到spring,这个应该是SSH中的重量级框架,它主要包含两个内容:控 ...

最新文章

  1. CSS+DIV固定底部的漂浮导航条(多浏览器兼容)
  2. Java8新特性Stream API与Lambda表达式详解(1)
  3. 数组反向遍历ios_iOS中数组遍历的方法及比较
  4. ios基础篇(二十六)—— UITableViewCell的分组索引与标记
  5. Java中的return this
  6. ibatis resultclass java.util.list_mybatis 动态sql返回一个List封装类报错求解决方法
  7. 一张图看明白云计算架构核心竞争力
  8. 【报告分享】2019宠物消费生态大数据报告.pdf
  9. centos进程php-fpm,CentOS 6.x 开启Nginx和Php-fpm状态统计
  10. Innodb独立的undo tablespace
  11. QCon全球软件开发大会:推动创新,实现技术落地
  12. 整数转字符串,字符串转整数
  13. 【iOS】编译静态库
  14. 区块链 PBFT最多多少个节点
  15. 试用bus hound来分析STM32CubeMX来生成USB_HID_Mouse工程
  16. 清华胡宇迪教授谈关于爱情、关于伴侣、关于承诺、关于人生、关于友情、关于微笑、关于生活、关于幸福
  17. 数值分析笔记(一):方程求根
  18. html隐藏域保存数组,关于给JS组合数组赋值给隐藏域问题
  19. JQuery 基础知识学习(详尽版)
  20. Ubuntu新手-谈第一次在Ubuntu升级VMware Tolls

热门文章

  1. P2574 XOR的艺术(线段树)
  2. 并查集三种Java代码实现
  3. php mail函数_PHP发送电子邮件函数mail详解
  4. 计算机应用基础10000字论文,计算机应用基础论文
  5. range函数python循环次数查询_python进阶教程之循环相关函数range、enumerate、zip
  6. 我在兰亭这三年之第一个项目
  7. Java正则入门(1)——去除字符串头尾空格
  8. HDU 1024:Max Sum Plus Plus(DP)
  9. Redis混合存储产品与架构介绍
  10. text-size-adjust: 100% 有什么作用?