说明
Conda: Package, dependency and environment management for any language: Python, R, Ruby, Lua, Scala, Java, Javascript, C/C++, FORTRAN
Conda是一个软件包和相关环境的配置工具,最常见的使用Anaconda管理Python。本文主要介绍conda的安装、配置和几个基本功能。
功能:
- 工具包和依赖管理:安装、更新和卸载工具包(package)。在
Anaconda中预安装的包不一定是最新版本,可以手动更新。 - 虚拟环境管理:建立指定Python和包的集合(环境)。
版本
Conda通常包含在Anaconda和Miniconda等发行版中。
- 【推荐】
Anaconda包含Python和几百个工具包,适用于科学计算和数据科学等,安装文件较大; -
Miniconda只有包含conda和相关依赖项,自主性更大,安装文件较小。
其他说明:
代码块中,每一行以#开头表示注释(说明);$开始表示指令($不需要输入,且表示一般用户权限即可),指令行中#之后的部分也表示注释(说明),指令中[]中内容表示可选。
安装
(推荐Anaconda3,即使用Python 3版本)
-
下载地址:
Anconda官网, 国内镜像站(速度较快,清华, 中科大,选择anaconda,里面也提供了miniconda下载) -
安装方式见:
Continuum Anaconda安装教程,推荐安装到个人用户路径中(默认方式) -
检验:
命令行(终端)输入conda --version;如果没有显示版本(或报错),需要将conda命令所在路径添加到环境变量Path中。
# Linux中将anaconda目录加入PATH,写入配置文件
$ echo 'export PATH="~/anaconda3/bin:$PATH"' >> ~/.bashrc
# 更新bashrc以立即生效
$ source ~/.bashrc
-
卸载:
Windows控制面板卸载;Linux/macOS,直接删除安装目录:
$ conda install anaconda-clean # 移除所有配置,y表示同意移除
$ anaconda-clean # 移除 (会在用户目录下有一个.anaconda_backup的备份目录)
$ rm -rf ~/anaconda3 # 移除安装目录,需要的话(最主要)
Anaconda中的主要组件:
- Anacoda Cloud: 网页链接,云平台;
- Anaconda Navigator: 功能的图形界面,可以使用命令
anaconda-navigator启动,已下命令可以在这个程序里直接操作;- Anaconda Prompt: 命令行界面;
- IPython: IPython命令行交互式界面;
- Jupyter Notebook: 启动Jupyter服务,浏览器操作文本;
- Jupyter QTConsole: IPython的Python命令交互式解释器界面;
- Spyder, Reset Spyder Settings: 一个轻量级的Python接触开发环境;代替:
PyCharm等。
Conda管理
配置:
Conda的配置文件在用户主目录下.condarc,格式是YAML;使用命令conda config配置。
- 配置镜像仓库(Channels)以提高下载速度:
$ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
$ conda config --set show_channel_urls yes
(来自清华镜像使用帮助,第三方源配置类似,略;其他配置见文档:配置)
基本信息管理
# 查看版本
$ conda --version
# 查看配置信息
$ conda config --show
# 更新conda,也可以更新其他包
$ conda update conda
$ conda update anaconda
$ conda update --all
# 查看帮助信息,-h 等价于 --help
$ conda -h
# 查看conda -h中显示的某条指令的帮助信息
$ conda info -h
管理环境
创建、移除(虚拟)环境,指定Python版本和需要的包(及其版本),类似virtualenv。
# 创建环境名为snowflakes,同时安装包biopython;--name 之后紧跟环境名
$ conda create --name snowflakes biopython
# 创建名为bunnies的Python3.5的环境,并安装astroid和babel
$ conda create -n bunnies python=3.5 astroid babel
# 克隆已有环境
$ conda create -n flowers --clone snowflakes
# 从文件中安装
$ conda create -n flowers2 --file env_config.txt
# 删除环境,--all参数必须要有,表示移除环境中所有包;也可以直接移除环境所在目录
$ conda remove --name flowers --all
# 激活snowflakes环境(Windows中无须source),命令提示符前有括号显示环境
$ source activate snowflakes
$ source deactivate # 取消激活
# 查看所有环境,默认有root环境,带星号的当前所在环境;--envs可略作-e
$ conda info --envs
$ cond env list # 效果同上
注:
- 选项
--name可以略作-n, 双横线--后面是全名,单横线-通常是选项的第一个字母,见帮助信息;- conda中将conda、Python等程序和一般的Python软件包视为等价,可以以相同方式安装、卸载、升级;
- 软件包后可设置特定版本号,
package_name=version_number,也可以模糊匹配,如numpy=1.11可以匹配1.11.0, 1.11.1等,使用==表示我完全匹配,其他可选包括>=、|、>=1.1,<2;- (虚拟)环境安装在
conda安装路径/envs/环境名中,如~/anaconda3/envs/。- 重名名已有的环境(暂时没有相关命令):1. clone已有环境命名为新名字, 2. remove旧环境
软件包管理
安装、更新、卸载包,基本可等同pip
# 当前环境中已安装的包, --revision 修订信息
$ conda list [--revisions]
# 查看指定环境中已安装的包
$ conda list --name snowflakes
# 搜索某个包,--full-name选项表示全名匹配
$ conda search [--full-name] beautifulsoup4
# 安装包,可以一次安装多个包,--name可以指定包安装的环境,默认是当前环境
$ conda install [--name bunnies] beatifulsoup4
# 从特定网站(仓库)下载并安装包;--channle 可以略作 -c
$ conda install --channel https://conda.anaconda.org/pandas bottleneck
# 移除包, 如果
$ conda remove --name bunnies iopro
Python环境管理
# 指定Python版本
$ conda create -n bunnies python=3.6
# 查看Python版本
$ python --version
# 查看Python路径
$ which [-a] python # Linux/macOS
$ where python # Windows
其他特性
- 环境共享
# 导出到文件,新创建
$ conda env export > environment.yaml
$ conda env create -f environment.yaml
- Tab补全:安装包
argcomplete
$ conda install argcomplete
常见问题/异常
- Ubuntu中运行python报错:
No module named _sysconfigdata_nd...
原因:安装了anconda2,并且加入了PATH中最前面,导致调用的Python是anaconda中的,而不是系统中(缺少部分文件)
解决:(命令行输入以下命令;或修改PATH)sudo ln -s /usr/lib/python2.7/plat-*/_sysconfigdata_nd.py /usr/lib/python2.7/结果:显示的python2版本是anconda的
参考:https://bugs.launchpad.net/ubuntu/+source/python2.7/+bug/1115466
- Zsh显示conda命令不存在
zsh中conda、activate等需要完整的路径(PATH中设置anaconda需要绝对路径/home/username而不是~)
总结
使用Anaconda管理Python环境
- 下载并安装anaconda
- 配置:Path和下载源(channel)
- 使用:
-
conda create --name env_name [python=3] packs建立新环境 -
conda remove --name env_name --all移除已有环境 -
[source] acivate env_name激活环境 -
conda install/update/remove/search packagename管理包 -
conda info --list查看已有环境 -
conda --help查看帮助信息
-
参考
- Conda Cheet Sheet
- Conda 文档
- Anaconda 文档
- 鱼心DrFish, 致Python初学者们 - Anaconda入门使用指南, 2017, 简书
- PeterYuan, Anaconda使用总结, 2017, 简书
- Lisa Tagliaferri, [How To Install the Anaconda Python Distribution on Ubuntu 16.04]






网友评论