美文网首页
Conda 小记

Conda 小记

作者: 齐州读经客 | 来源:发表于2017-08-11 21:26 被阅读424次

说明

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通常包含在AnacondaMiniconda等发行版中。

  • 【推荐】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

常见问题/异常

  1. 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

  1. Zsh显示conda命令不存在
    zsh中conda、activate等需要完整的路径(PATH中设置anaconda需要绝对路径/home/username而不是~

总结

使用Anaconda管理Python环境

  1. 下载并安装anaconda
  2. 配置:Path和下载源(channel)
  3. 使用:
    • 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 小记

      本文链接:https://www.haomeiwen.com/subject/cdgrrxtx.html