1 引言

在前几篇博文中介绍过virtualenv、virtualenvwrapper等几个虚拟环境管理工具,本篇要介绍的anaconda也有很强大的虚拟环境管理功能,甚至相比virtualenv、virtualenvwrapper等工具,更加强大。
Anaconda是专注于数据分析的Python发行版本,包含了conda、Python等190多个科学包及其依赖项。我们本篇要介绍的anaconda虚拟环境管理就是使用其中的conda。conda是一款极为特殊的环境管理工具,之所以说它特殊,conda的设计思想——conda将几乎所有的工具、第三方包都当做package对待,甚至包括python和conda自身!因此,conda打破了包管理与环境管理的约束,能非常方便地安装各种版本python、各种package并方便地切换。也就是说说,在进行虚拟环境管理时,conda可以独立于系统原有的Python版本而创建任意版本的Python解释器,这是virtualenv、virtualenvwrapper等工具所不具备的。

2 安装

2.1 下载

本次安装的版本是anaconda3。先进入一个用于存放下载文件的目录,然后安装anaconda:
$ cd /home/ubuntu/download
$ wget https://repo.anaconda.com/archive/Anaconda3-2018.12-Linux-x86_64.sh

2.2 安装与配置

如果没有意外,上述命令结束之后,在/home/ubuntu/download目录下会下载成功一个名为Anaconda3-2018.12-Linux-x86_64.sh的文件。
通过以下命令正式开始安装:
$ bash Anaconda3-2018.12-Linux-x86_64.sh
在安装过程中,需要你允许使用协议,输入yes即可:
Do you accept the license terms? [yes|no]
[no] >>>
Please answer 'yes' or 'no':'
>>> yes
然后输入你希望将anaconda安装到的目录,例如将anaconda安装到 /usr/bin/anaconda3:
[/home/ubuntu/anaconda3] >>> /usr/bin/anaconda3
当然,我这次安装选择的是默认的/home/ubuntu/anaconda3目录中,所以直接回车即可。
输入完成之后,系统将继续完成安装,知道出现如下输出提示:
Do you wish the installer to initialize Anaconda3
in your /home/ubuntu/.bashrc ? [yes|no]
[no] >>>
这里,你可以输出yes。意思是,将/home/ubuntu/anaconda3下的bin目录添加到当前用户的环境变量配置中。如果错过了这一步配置或者输入的是no,你将需要进行手动配置环境变量:
$ cd ~
$ vim .bashrc
然后在最后一行输入以下内容:
# anaconda3的配置环境
export PATH="/home/ubuntu/anaconda3/bin:$PATH"
结束上面所有步骤之后,运行一下命令让配置生效:
$ source .bashrc

2.3 验证安装结果

如果上面的所有步骤都没有意外,顺利完成的话,事实上anaconda就已经安装成功了。我们来验证一下。
直接在命令行中输入python,看看Python的版本:
$ python
Python 3.7.1 (default, Dec 14 2018, 19:28:38)
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
可以看到,Python的版本已经与原来不一样了。
查看conda版本,运行命令:
$ conda --version
conda 4.5.12
输出安装的anaconda的的conda的版本为4.5.12。上述迹象表明,anaconda确实安装成功。

3 环境管理

3.1 创建虚拟环境

conda create -n env_name python=version package_names
其中,参数-n是指接下来的参数指定虚拟环境名,与--name等效,所以python36即为指定的将要创建的虚拟环境名。python=version是为虚拟环境指定Python版本,指定版本后,conda会安装该版本下最新的子版本,例如指定版本为3.6时,conda将会安装最新的3.6.x版本。package_names是要为新的虚拟环境创建时就安装的包,这里也可以不安装其他包,省略这一参数,在后续使用虚拟环境时安装第三方包。
例:创建一个虚拟环境,Python版本为3.6,虚拟环境名为python36
conda create --name python36 python=3.6

3.2 查看虚拟环境

conda env list
运行后,结果如下:
# conda environments:
#
base * /home/chb/anaconda3
python36 /home/chb/anaconda3/envs/python36
上述结果列出了当前系统中所有conda创建的虚拟环境,即环境所在目录。base是安装anaconda时指定安装的Python环境。型号(*)是指系统当前说还是用的Python环境。

3.3 激活虚拟环境

conda activate env_name
例如:进入刚刚创建的虚拟环境python36
conda activate python36
如果进入到虚拟环境python36,之后的命令行抬头都会有一个“(python36)”的字样。

3.4 退出虚拟环境

退出虚拟环境时并不需要指定虚拟环境名,直接运行下行命令即可:
conda deactivate

3.5 共享虚拟环境

什么是共享虚拟环境呢?当我们在本机上开发了一套代码,然后将代码上传到github或者发给项目组其他人,这是别人可不知道我们开发的代码上面用到了哪些依赖,conda提供了方便得功能将虚拟环境中所有依赖包统一导出一个配置文件中,在别的机器上使用这套代码时,根据conda导出的配置文件重建虚拟环境即可,这就是共享虚拟环境功能。在多人协作开发及开源的情况下,共享虚拟环境无疑是一个非常实用的功能。
先来导出依赖到配置文件:
conda env export --file python36_env.yml
environment.yaml是导出依赖的目标文件,运行命令后,当前目录下就回生成一个environment.yaml文件,包含了所有依赖信息。
根据配置文件创建虚拟环境:
conda env create -f /home/chb/code/python36_env.yml
运行上述命令后,在新机器上也会创建一个一模一样的虚拟环境。
3.6 删除虚拟环境
 conda remove -n python36 --all 
或者
conda env remove -n python36

4 包管理

4.1 安装包

conda install package_name
或者
pip install package_name

4.2 列出所有包

conda list

4.3 更新包

conda update package_name
如果想要一次性更新所有包:
conda update --all

4.4 查找包

conda search keyword
例如:我们要安装pandas,但是忘了准确名称,可以这样查找:
conda search pan

4.5 删除包

conda remove package_name

5 总结

虽然相较于virtualenv、virtualenvwrapper等工具,anaconda安装要复杂一下,但无疑anaconda功能更加强大,可以更加方便得进行包管理。
 
 
 
 
 

anaconda虚拟环境管理,从此Python版本不用愁的更多相关文章

  1. Python linux多版本共存以及虚拟环境管理(转摘)

    Python linux多版本共存以及虚拟环境管理 2017年08月01日 18:42:25 sliderSun 阅读数:197更多 个人分类: python   版权声明:本文为博主原创文章,未经博 ...

  2. pyenv虚拟环境管理python多版本和软件库

    可能大家在日常工作中会遇到这么个问题,现在基本的linux系统都是自带老版本的python2.7.x版本,我又不想用老版本,但直接升级可能会出问题,或是依赖老版本的程序就运行不了,有没办法能安装3.x ...

  3. python开发之虚拟环境管理:virtualenv、virtualenvwrapper、pycharm

    1 引言 进行Python开发时,多个项目可能使用到不同的依赖,例如A项目需要1.8版本的Django,而B项目需要2.0版本的Django,这时候如果没有使用虚拟环境,就需要来回卸载和安装Djang ...

  4. Anaconda 包管理工具 conda 进行虚拟环境管理入门

    在基于 python 进行数据分析.机器学习等领域的实践和学习时,由于代码的更迭和更新,运行他人实现的代码或尝试安装新的工具库时往往需要指定特定版本的其他工具库,以满足特定环境的构建条件.而将同一工具 ...

  5. python虚拟环境管理之virtualenv,virtualenvwrapper,pipenv,conda

    虚拟环境的作用 使python环境拥有独立的包,避免污染原本的python环境.为不同的项目创建不同的环境可以避免安装的库过于庞大和相互干扰. 例如你想在同一台机器上开发用python2和python ...

  6. python 使用virtualenvrapper虚拟环境管理工具

    centos 默认安装的python是2.6版本的 使用virtualenv 环境管理工具建立python虚拟环境的时候会遇到一些错误,DEPRECATION: Python 2.6 is no lo ...

  7. 在linux上安装python, jupyter, 虚拟环境(virtualenv)以及 虚拟环境管理之virtualenvwraper

    一, 安装python31.下载python3源码 wget https://www.python.org/ftp/python/3.6.7/Python-3.6.7.tar.xz2.解压缩源码包,去 ...

  8. Anaconda 使用(解决python包管理与环境管理)

    Anaconda完全入门指南(对python环境和原理,讲的比较透彻):https://www.jianshu.com/p/eaee1fadc1e9 用pip一个一个安装第三方库费时费力,还需要考虑兼 ...

  9. Python 版本之 Anaconda

    https://www.anaconda.com/download/#linux Anaconda概述 Anaconda是一个用于科学计算的Python发行版,支持 Linux, Mac, Windo ...

随机推荐

  1. while与for不能互换的地方

  2. nrm安装与使用

    1.什么是nrm nrm是一个npm源管理工具,使用它可以快速切换npm源. 2.安装 使用如下命令安装: npm install -g nrm 安装完后可使用 nrm -V 显示版本,注意是大写V. ...

  3. 【Mysql sql inject】POST方法BASE64编码注入write-up

      翻到群里的小伙伴发出一道POST型SQL注入题,简单抓包判断出题目需要base64编码后才执行sql语句,为学习下SQL注入出题与闯关的思路+工作不是很忙,所以花点时间玩了一下,哈哈哈哈哈哈哈哈哈 ...

  4. ARMV8 datasheet学习笔记2:概述

    1. 前言 本文主要概括的介绍ARMV8体系结构定义了哪些内容,概括的说: ARM体系结构定义了PE的行为,不会定义具体的实现 ARM体系结构也定义了debug体系结构和trace体系结构 ARM体系 ...

  5. Linux Makefile 编译速度的优化【转】

    转自:https://blog.csdn.net/QQ1452008/article/details/51851801 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog. ...

  6. nagios系列(五)之nagios图形显示的配置及自定义插件检测密码是否修改详解

    nagios图形显示的配置 在服务端安装相关软件 #1.图形显示管理的依赖库 yum install cairo pango zlib zlib-devel freetype freetype-dev ...

  7. CentOS6.5环境使用keepalived实现nginx服务的高可用性及配置详解

    keepalived基础概念    Keepalived是一个基于VRRP协议来实现的WEB服务高可用方案,可以利用其来避免单点故障.一个WEB服务至少会有2台服务器运行Keepalived,一台为主 ...

  8. 转载:2.2.2 配置项的语法格式《深入理解Nginx》(陶辉)

    原文:https://book.2cto.com/201304/19627.html 从上文的示例可以看出,最基本的配置项语法格式如下: 配置项名 配置项值1 配置项值2 - ; 下面解释一下配置项的 ...

  9. ExtJs常用布局--layout详解(含实例)

    序言: 笔者用的ExtJs版本:ext-3.2.0 ExtJs常见的布局方式有:border.form.absolute.column.accordion.table.fit.card.anchor ...

  10. linux java报错汇总

    一:♦linux 下javac 编译报 需要class, interface 或enum错误   ♦解析时已到达文件结尾 原因:大括号补匹配  //注意看报警提示