conda

conda

conda是anaconda的环境管理和包管理器,conda将几乎所有的工具、第三方包都当做package对待,甚至包括python和conda自身。

conda命令

使用conda -h查看conda 支持的命令信息


# 查看conda支持的完整命令

conda -h

sage: conda [-h] [-V] command ...

conda command [arguments]

很多跟在--后边的命令参数,可以被略写为一个短线加命令首字母,如--name可缩写为-n

conda is a tool for managing and deploying applications, environments and packages.

Options:

positional arguments:

command

info        Display information about current conda install.

help        Displays a list of available conda commands and their help

strings.

list        List linked packages in a conda environment.

search      Search for packages and display their information. The input

is a Python regular expression. To perform a search with a

search string that starts with a -, separate the search from

the options with --, like 'conda search -- -h'. A * in the

results means that package is installed in the current

environment. A . means that package is not installed but is

cached in the pkgs directory.

create      Create a new conda environment from a list of specified

packages.

install      Installs a list of packages into a specified conda

environment.

update      Updates conda packages to the latest compatible version. This

command accepts a list of package names and updates them to

the latest versions that are compatible with all other

packages in the environment. Conda attempts to install the

newest versions of the requested packages. To accomplish

this, it may update some packages that are already installed,

or install additional packages. To prevent existing packages

from updating, use the --no-update-deps option. This may

force conda to install older versions of the requested

packages, and it does not prevent additional dependency

packages from being installed. If you wish to skip dependency

checking altogether, use the '--force' option. This may

result in an environment with incompatible packages, so this

option must be used with great caution.

upgrade      Alias for conda update. See conda update --help.

remove      Remove a list of packages from a specified conda environment.

uninstall    Alias for conda remove. See conda remove --help.

config      Modify configuration values in .condarc. This is modeled

after the git config command. Writes to the user .condarc

file (/Users/Garden/.condarc) by default.

clean        Remove unused packages and caches.

package      Low-level conda package utility. (EXPERIMENTAL)

optional arguments:

-h, --help    Show this help message and exit.

-V, --version  Show the conda version number and exit.

other commands, such as "conda build", are avaialble when additional conda

packages (e.g. conda-build) are installed

任何时候,你可以通过在命令后加上-h 或者--help来获取该命令的完整文档:


Garden  ~  conda create -h

usage: conda create [-h] [-y] [--dry-run] [-f] [--file FILE] [--no-deps] [-m]

[--use-index-cache] [--use-local] [--offline] [--no-pin]

[-c CHANNEL] [--override-channels]

[-n ENVIRONMENT | -p PATH] [-q] [--copy] [--alt-hint]

[--update-dependencies] [--no-update-dependencies]

[--channel-priority] [--no-channel-priority]

[--show-channel-urls] [--no-show-channel-urls] [--json]

[--debug] [--verbose] [--clone ENV]

[--no-default-packages]

[package_spec [package_spec ...]]

配置conda

conda有两种等价的配置方式:

命令行(conda config)


# 设置单值属性

conda config —set 属性名 属性值

# 为多值属性添加属性值

conda config —add 属性名 属性值

配置文件(~/.confarc)

conda的配置文件.condarc是一个可选的运行时配置文件,(默认情况下并不存在该文件,当用户首次运行conda config命令时,它会在HOME目录下自动创建),允许高级用户对conda进行各种配置:

  1. 管理包搜索通道;

  2. 设置代理;

  3. 设置环境目录;

  4. 是否根据当前激活环境名更新bash提示;

  5. 用户构建的包是否上传到Anaconda.org;

  6. 默认包含在新环境中的包或特征;


# 添加anacondaTUNA镜像

channels:

- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

- r

- defaults

# 设置搜索时显示通道地址

show_channel_urls: true

示例

添加镜像

anaconda的服务器在国外,速度很慢,所幸清华TUNA镜像有anaconda库的镜像,将其加入conda配置即可:


# 添加anacondaTUNA镜像

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

# 设置搜索时显示通道地址

conda config --set show_channel_urls yes

取消询问


# 当安装包时,总会被询问是否`Proceed ([y]/n)?` ,默认为False,设置为`always_yes: True`将不会再做提醒

conda config --set always_yes True

显示通道URL


# 当下载安装包时,显示通道URL,默认为False,设置show_channel_urls:True

conda config --set show_channel_urls True

环境管理

环境管理允许用户方便地安装不同版本的python(虚拟环境)并可以快速切换。Anaconda实际是通过通过virtualenv来实现环境管理的。


# 查看已安装环境及当前被激活的环境,用户安装的不同python环境都会被放在目录~/anaconda/envs下,当前被激活的环境会显示有一个星号或者括号

conda info -e

# 创建虚拟环境,环境名尽量和环境用途相关,如果不指定python版本,conda会安装我们最初安装conda时的默认版本

conda create --n 环境名称 python=python版本

# 克隆环境

conda create -n 新环境名称 —clone 被克隆的环境名称

# 创建环境,同时安装完整anaconda集合包

conda create -n 新环境名 python=python版本 anaconda

# 激活环境,激活后,会发现terminal输入的地方多了py27的字样

# 实际上,此时系统做的事情就是把默认3.5环境从PATH中去除,再把2.7

# 对应的命令加入PATH。此时输入python得到的是python2.7.13,pip也是py27中的pip包管理工具

activate 环境名          # windows中激活py27环境

source activate 环境名  # mac或Linux中激活py27环境

# 取消环境激活,返回默认环境

deactivate        # windows

source deactivate  # mac或Liunx

# 删除环境

conda remove —name 环境名 —all

包管理

conda作为包管理工具和pip类似,但是还有区别:

  • 某些包不能通过conda安装,只能通过pip安装

  • anaconda python conda都被conda视为package,和普通安装包管理方式相同

普通包管理


# 查看当前激活环境中的已安装包,如果希望查询指定环境中已安装包,则在command命令后加上-n 环境名,其他命令类似

conda list (-n python34)

# 查找package信息

conda search (-n python34)  numpy

# 查看某安装包是否已安装

conda list | grep 包名(支持正则)

# 安装package,如果不用-n指定环境名称,则被安装在当前活跃环境,也可以通过-c指定通过某个channel安装

conda install (-n python34) numpy

# 更新package

conda update (-n python34) numpy

# 删除package

conda remove (-n python34) numpy

# 新创建的环境只会包含较少的必须项如pip、python,若希望新环境和默认环境那样安装完整anaconda集合包

conda install anaconda

特殊包管理


# 更新conda,保持conda最新

conda update conda

# 更新anaconda集合包

conda update anaconda

# 更新python,假设当前环境是python 3.4, conda会将python升级为3.4.x系列的当前最新版本

conda update python

# 更新anaconda-navigator

conda update anaconda-navigator

conda和其他工具的关系

conda和anaconda

anaconda是python的一个发行版,软件发行版是在系统上提前编译和配置好的软件包集合, 装好了后就可以直接用。Anaconda发行版会预装很多pydata生态圈里的软件,而Miniconda是最小的conda安装环境, 一个干净的conda环境

conda是一个包管理器,包管理器是自动化软件安装,更新,卸载的一种工具。

虽然conda是用Anaconda打包的,但是,conda和Anaconda没有必然关系, 你可以不安装Anaconda的同时, 使用conda安装和管理软件。

conda和pip

pip可以允许你在任何环境中安装python包,而conda允许你在conda环境中安装任何语言包。而如果,你想要让许多依赖库一起很好地工作(比如数据分析中的Numpy,scipy,Matplotlib等等)那你就应该使用conda,conda很好地整合了包之间的互相依赖。

pip 和 conda 是为不同目的存在的,我们应该更加关注怎么同时用好这两个工具,而不是只用一个

conda和virtualenv

事实上,你可以在virtualenv环境下安装conda,但是最好用conda自己的环境工具,这样会和pip有更好的兼容性


virtualenv test_conda

source test_conda/bin/activate

pip install conda

conda install numpy

也可以在conda中创建虚拟环境


conda create -n yourenvname python=x.x anaconda

source activate yourenvname

conda和wheels

wheels只是解决了conda试图克服的许多困难中的一个, conda二进制编排还是有很多wheels没有的优势。

wheels和conda都解决了预编译的代码安装问题(不仅仅是源代码安装)。但是wheel没有conda的依赖处理能力,wheels只能跟踪python代码的依赖关系,conda可以跟踪很多c代码的依赖关系,这为许多用numpy和scipy做科学计算优化的科学家省了不少心。

FAQ

  1. anaconda闪退

sudo anaconda-navigator

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

推荐阅读更多精彩内容