Anaconda:解决你装包的烦恼

生物信息学的日常就是利用五花八门的工具和各种各样的数据打交道,很多时候需要在命令行安装软件或者包。我相信每一个生信人都碰到过安装软件或包时无法解决依赖的囧况,安装软件或者包,听起来是一件很简单的一件事,实际情况却不是如此。比如说编译时碰到系统lib不存在或版本太低,安装一个python/R包却需要升级当前的python/R,而这又会导致之前安装好的包不能使用。今天给大家介绍一下跨平台包管理神器Anaconda,学习一下它在Linux下的正确使用姿势。

Anaconda是什么?

官方介绍“The World's Most Popular Python/R Data Science Platform”。简单来说,Anaconda是包管理器和环境管理器。

安装 Anaconda

在清华大学 TUNA 镜像源(https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/)选择对应的操作系统与所需的Python版本下载Anaconda安装包。比如我下载了Anaconda3-2019.10-Linux-x86_64.sh这个安装包,那么安装命令如下

bash Anaconda3-2019.10-Linux-x86_64.sh

后面会有一些选项停顿,直接回车确认。

1. 包管理**

安装包

假如我要安装scipy这个科学计算包,那么可以输入如下命令

conda install scipy

conda会自动搜索并解决包依赖项,你只需要按回车即可。有时候我们想安装某个指定版本的包,那么就需要先知道conda里面存在哪些版本的包,可以输入如下命令就行搜索

conda search scipy

搜索结果还挺多的,部分结果如下


如果我想安装0.19.1这个版本的scipy,那么输入如下命令

conda install scipy=0.19.1

最后一列信息为channel,这个channe是很重要的一个信息,有时候一些包找不到,很大原因是当前的channe里面还没有,但是其他channel实际上有。怎样添加channel呢?稍安勿躁,后面添加镜像部分会提到。

删除包

有安装就有卸载,卸载包命令如下

conda remove scipy

更新包

conda update scipy


2. 管理环境

环境非常有用,它能让你为某个项目单独建立一个运行时,而不会与现有的环境产生冲突。此外,当你需要将项目迁移到其他机器的时候,可以将整个环境迁移过去,彻底解决移植的难题。

建立环境

先看如下命令

conda create -n env_name package_names

上面的命令中,env_name 是设置环境的名称(-n 是指该命令后面的env_name是你要创建环境的名称),package_names 是你要安装在创建环境中的包名称。例如创建环境名称为py3,并安装最新版本的Python3,那么在终端中输入

conda create -n py3 python=3

列出环境

conda env list 

你会看到环境的列表,而且你当前所在环境的旁边会有一个星号。

删除环境

如果你不再使用某个环境,可以使用如下命令删除指定的环境

conda env remove -n env_name

进入环境

source activate env_name

在环境中安装包的命令与前面一样:conda install package_name。不过,这次你安装的包仅在你进入此环境后才可用。其他环境是不知道这个包的存在的。

离开环境

source deactivate

共享环境

共享环境非常有用,它能让其他人安装你的代码中使用的所有包,并确保这些包的版本正确。比如你开发了一个数据分析系统,你要提交给项目部署系统的王二狗来部署你的项目,但是王二狗并不知道你当时开发时使用的是哪个python版本,以及使用了哪些包和包的版本。这怎么办呢?你可以在你的环境中终端中使用如下命令将你当前的环境保存到文件中。

conda env export > environment.yaml

导出的环境文件,在其他电脑中如何使用呢?使用如下命令加载刚刚导出的环境

conda env create -f environment.yaml


3. 设置国内镜像

如果需要安装很多packages,你会发现conda下载的速度经常很慢,因为Anaconda.org的服务器在国外。所幸的是,清华TUNA镜像源(https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/)有Anaconda仓库的镜像,如下图所示:

将红框中的代码复制保存到 ~/.condarc 文件。这个文件记录着我们对conda的配置。保存之后可以用如下命令检查一下

conda config  --show

可以看到已经成功加入了几个不同channels的镜像地址。

专注生物学领域的bioconda的channel也包含在里面了。假设需要安装DESeq2这个包,这是一个发布在bioconductor的R包。默认的channel里面是没有的。可以使用如下命令进行安装

conda install -c bioconda bioconductor-deseq

上述命令中的“-c bioconda”就是告诉conda,要去bioconda这个channel这个源去检索DESeq2这个包。

4. 加分篇

重命名环境

conda create --name newname --clone oldname  #克隆环境

回滚

conda list --revisions

欢迎关注公众号:"生物信息学"

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

推荐阅读更多精彩内容