Conda是在Windows、macOS和Linux上运行的开源软件包管理系统和环境管理系统。可以快速安装、运行和更新软件包及其依赖项。可以轻松地在本地计算机上的环境中创建,保存,加载和切换。它是为Python程序创建的,但可以打包和分发适用于任何语言的软件。
目前conda的发行版本分为anaconda、miniconda两种,安装了ananconda或miniconda的完整版,就默认安装了conda。anaconda会包含一些常用包的版本,miniconda则是精简版,两者安装均可。
conda是一个辅助工具,由于其自带python版本,可主要用来进行python包管理、环境管理,在功能上可以看作是pip 和 vitualenv 的组合,同时也可以对常用的生信软件进行安装、卸载。
比如,创建不同的环境work、test,你可以方便在不同集群环境中安装、卸载、升级、降级、不同的软件版本。例如把python3 + python2、R2.7 + R3.8分别安装在work、test虚拟环境下,这样你就可以在集群中使用不同版本的软件,即使它们两者之间无法同时存在、或相互冲突。
在国内从官网上下载安装包会比较慢,下载最新版容易,过往版本不易寻找。生信软件一般建议使用过往的稳定版本,尤其是公司集群的系统版本低,很容易版本不匹配。推荐从清华大学的源下载。
## anaconda的官网地址
https://www.anaconda.com/products/individual
## 清华源anaconda、 miniconda 的过往版本
https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/
## 选择适合自己的版本后,用wget下载
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py38_4.9.2-Linux-x86_64.sh
## 如果网站证书已过期,需要增加参数--no-check-certificate下载
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py38_4.9.2-Linux-x86_64.sh --no-check-certificate
按照如下命令执行,安装软件。
## 下载的
chmod 755 sh Miniconda3-py38_4.9.2-Linux-x86_64.sh
sh Miniconda3-py38_4.9.2-Linux-x86_64.sh
不能像其他软件安装一样,一路yes,有几个地方需要注意。
1. 接受软件安装条款
2. 指定软件安装目录
指定在Software目录下安装该软件,会自动生成Software/Miniconda文件夹,软件内容在此目录下。注意,安装前不能存在"Miniconda"文件夹,否则会报错’directory xxx already exists’,切记。
3.拒绝把conda加入环境变量
不将conda加入.bashrc 不会影响 后续的使用,后续决定权在你且问题可控。
如果每个人都默认加入,每次登陆时会默认激活conda的base环境,这会导致集群登录很卡。
如果之前有安装过conda,且将大量的软件直接安装在conda的base环境 或者 账号是公用账号,可能会把你原来设置好的环境改变,影响部分软件、脚本的正常运行,得不偿失。
激活conda,进入自带的base基础环境
## 激活conda,进入base环境
source activate
## 如果无法执行,可以考虑修改Miniconda/bin/activate的权限为755
## 查看conda的安装路径
which conda
## 推出base环境
conda deactivate
conda默认的配置文件为~/.condarc,而我们常用的设置为修改channels设置,可以大幅加快下载软件、包的速度。借用参考资料中作者的说法,安装conda就相当于买了一台电视机,但是有电视了不意味着你就能看节目了,你要手动添加频道才能看你想看的电视节目。不同的频道速度非常不同,官方的频道相较而言速度较慢,使用国内的镜像会比较快。因为官方、镜像的频道相同,所以保留一个就行。
示例如图:
常用的修改配置命令有:
## 查看所有配置信息
conda config --show --json
## 查看目前镜像channel的情况
conda config --show channels # 目前已有的channels
conda config --show-sources # 展示.condarc的内容
conda config --get channels # 展示软件源之间的优先级,越下面(刚添加的)优先级越高,意思是当两个软件源都有一个相同的包(package)的时候,conda会选择优先级更高的软件源,并从中下载安装你所要的包。
## 增加频道
conda config --add channels defaults # 增加使用默认的源
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/bioconda # 增加使用北京外国语的源
## 删除频道
conda config --remove channels defaults
conda config --remove channels https://mirrors.bfsu.edu.cn/anaconda/cloud/bioconda
## 设置搜索时显示通道地址
conda config --set show_channel_urls yes # 在输入下载命令后,conda会为我们选择一个源,并从中下载我们要的那个包。这个源可能是我们添加中的某一个,也可能系统默认的那些。我们希望在下载的时候,conda告诉我们当前下载是在用哪一个。
## 配置安装软件时不要提示输入yes
conda config --set always_yes true
国内比较重要的镜像网站:
清华大学: https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/
北京外国语大学: https://mirrors.bfsu.edu.cn/help/anaconda/
上海交通大学: https://mirror.sjtu.edu.cn/
(1)清华大学
https://mirror.tuna.tsinghua.edu.cn/help/anaconda/
channels:
- defaults
show_channel_urls: true
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
(2)北京外国语大学
https://mirrors.bfsu.edu.cn/help/anaconda/
channels:
- defaults
show_channel_urls: true
default_channels:
- https://mirrors.bfsu.edu.cn/anaconda/pkgs/main
- https://mirrors.bfsu.edu.cn/anaconda/pkgs/r
- https://mirrors.bfsu.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https://mirrors.bfsu.edu.cn/anaconda/cloud
msys2: https://mirrors.bfsu.edu.cn/anaconda/cloud
bioconda: https://mirrors.bfsu.edu.cn/anaconda/cloud
menpo: https://mirrors.bfsu.edu.cn/anaconda/cloud
pytorch: https://mirrors.bfsu.edu.cn/anaconda/cloud
pytorch-lts: https://mirrors.bfsu.edu.cn/anaconda/cloud
simpleitk: https://mirrors.bfsu.edu.cn/anaconda/cloud
## 生信添加以下5个频道足够了
- https://mirrors.bfsu.edu.cn/anaconda/pkgs/main
- https://mirrors.bfsu.edu.cn/anaconda/pkgs/r
- https://mirrors.bfsu.edu.cn/anaconda/pkgs/msys2
- https://mirrors.bfsu.edu.cn/anaconda/cloud/conda-forge
- https://mirrors.bfsu.edu.cn/anaconda/cloud/bioconda
conda是个安装软件的神器,但镜像不稳定,下载安装软件的速度有时很慢。对于几十Mb甚至上百Mb的软件往往下不动,下了半天可能失败。mamba可以用来并行下载和安装,大大提高conda的下载速度,减少安装失败几率。
activate激活base环境后,运行:
## mamba主页
https://anaconda.org/conda-forge/mamba
## 使用conda安装mamba
conda install -c conda-forge mamba # 多数安装失败可通过换时间重装解决;
如果持续无法成功安装,可以考虑使用micromamba来代替。 它比mamba要小,网络不稳定的情况下,会更容易下载成功。mamba info、micromamba info可看出两者 user config files 、 base environment的配置类型有差别,如果无法正常安装,可酌情更改。
anaconda使用文档
如果已经安装了mamba,理论上下面所有的conda均可替换成mamba,但实际上还是仅conda install替换成mamba install,其余的命令不变。
1) conda -V: 查看conda版本
2) conda list:查看当前环境下安装了哪些包
2) conda env list 或 conda info --envs: 查看有哪些conda虚拟环境
3) conda update conda: 检查更新当前conda版本
4) conda config --show channels: 查看channels信息
base环境可以正常使用,安装生信软件、给自带的python版本安装需要的包等,但这样很容易导致后续的管理混乱,软件冲突,也没有真正利用好conda的特性(对虚拟环境的管理 )。
可根据自身需要建立若干个虚拟环境,以照顾不同的软件版本共存或解决软件冲突,如给某软件创建一个单独的环境。
1.激活base环境
source activate
2.切换到其他虚拟环境
conda activate my_env
3.关闭当前虚拟环境
source deactivate # 即从当前环境退出返回,使用(.bashrc)PATH环境中的默认的python版本
4.在base环境下, 创建新虚拟环境
conda create -n my_env python=x.x # conda命令创建python版本为x.x,名字为my_env的虚拟环境。my_env文件可以在Anaconda安装目录envs文件下找到。
eg: conda create -n work python=3.8 # 安装一个名为work的虚拟环境,虚拟环境使用的python版本是3.8。
conda create -n work python=3 # 安装一个名为work的虚拟环境,虚拟环境使用的python版本为最新的正式版。
conda create -n test python=2.7
conda create --name bunnies python=3.5 astroid babel # 创建名为bunnies,使用python 3.5版本的环境,并安装astroid和babel包
5. 在base环境下,复制work 环境到test 环境
conda create --name work --clone test
6. 在base环境下,删除某个虚拟环境
conda remove -n my_env(虚拟环境名称) --all # 删除my_env环境及下属所有包
conda remove --name my_env package_name # 删除my_env环境中的某个包
7.导出虚拟环境的所有配置信息
conda env export > environment.yaml # 进入某个环境,导出yaml格式的文件,该文件记录了环境名,软件源地址以及安装包列表
conda env create -f environment.yaml # 在新集群中使用yaml配置文件创建新虚拟环境
conda把python看作和其他包一样,可以在创建虚拟环境的时候指定
## 查看频道下可用的python版本
conda search --full-name python
## 安装不同版本的python
conda create --name work python=3.4
conda默认从https://repo.continuum.io/pkgs/下载安装包,当无法找到需要的安装包时,可以通过Anaconda.org安装包, 在http://anaconda.org可以搜索可用的包并在包详情页面获取下载命令。
## 查看当前环境下的已经安装的包
conda list
## 查看频道下可用的某包
conda search openpyxl
## 安装包到环境work,不加--name时,默认安装到当前环境
conda install --name work openpyxl
## 安装包指定镜像源加速下载(**)
conda install -c https://mirrors.bfsu.edu.cn/anaconda/cloud/conda-forge micromamba
## 安装包requests , 默认路径下载很慢,此时可指定下载命令
conda install --name work -c conda-forge requests
## 检查安装结果
conda list
## 更新requests 包
conda update requests
## 卸载requests 包
conda remove requests
conda remove --name work requests # 删除work环境中的requests包
当无法使用conda安装,也无法从http://anaconda.org下载到需要的安装包时,可以通过pip命令安装。
1. 激活base,切换到软件要安装的虚拟环境work下
2. 确认pip路径
which pip # 确认pip的路径是否为Miniconda/envs/work/bin/pip
3. 安装指定包
pip install pymysql ## 如遇到报错,可尝试使用python3 -m pip install
4. 查看包
conda list
退出conda环境之后之前安装的软件,无法用which找到,默认不使用,除非指定软件的绝对路径。 需要把conda安装的路径与环境变量联系在一起,方便调用。
第一种方法:把各虚拟环境下的bin路径(软件在此路径下)增加到环境变量/home/XX/.bashrc中
第二种方法:把安装好的软件全部软连接到一个处在环境变量里的位置
mkdir summary_software # 建立软件汇总文件夹
ln -s */Software/Miniconda/envs/work/bin/samtools ./ #软连接已安装软件
vim ~/.bashrc # 添加路径到自己的环境变量中
source ~/.bashrc # 初始化自己的环境变量
# 导出 environment.yml 文件:
conda env export > environment.yml
# 重现环境:
conda env create -f environment.yml
1、修改配置文件
视配置文件在/etc/profile还是~/.bashrc决定。
## 删除语句,或者注释语句
export PATH=path/anaconda3/bin:$PATH
2、删除Miniconda安装文件夹
rm -rf path/Miniconda
3、重启配置文件
source ~/.bashrc 或者 source /etc/profile
conda的安装与使用
Conda简介
conda如何添加,删除镜像channel,以及其他常见使用方法
极速安装软件的升级版 conda
anaconda 如何创建虚拟环境
Linux卸载Anaconda
1、Anaconda使用conda activate激活环境出错
问题描述:使用conda activate无法切换指定虚拟环境;
出现原因:从base环境下才能切换到指定虚拟环境;
解决方法:source activate先激活base环境,再切换到指定虚拟环境;
2、conda安装时报错,HTTP连接超时
问题描述:使用conda安装软件、包时报错,提示无法连接要下载的url路径;
出现原因:镜像源访问速度过慢,会导致连接超时,从而导致更新和下载失败。
解决方法:网络不文档引起的,不同时间段反复执行命令,或者重新安装anaconda;
失败方法:
(1)~/condarc中channels的https改成http(无效)
简单来说,HTTP 页面响应速度比HTTPS 快,两者主要区别如下:
1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
参考文件:https://blog.csdn.net/xionghuixionghui/article/details/68569282
https://www.cnblogs.com/TTyb/p/12751976.html
(2)使用不太繁忙的conda镜像(无效)
从清华转成北京外国语大学也是无效
(3)重装anaconda
1、卸载anaconda安装路径、.bashrc等配置文件
2、重装anaconda(成功)
3、conda创建虚拟环境时出现的CondaVerificationError问题
问题描述:虚拟环境无法成功创建
出现原因:上次conda创建该虚拟环境时并未执行完,被意外终止,导致pkgs目录下部分软件包的有问题。
解决方法:删除给出错误提示的有问题文件,删除创建失败的虚拟环境。再次重新创建虚拟环境。
参考文件:https://blog.csdn.net/qq_35240640/article/details/114039835
4、集群gcc版本太低
问题描述:集群上的GCC版本太低,无法正常运行conda
出现原因:GCC版本太低,需要升级
解决方法:(1)如参考文件所说寻找合适gcc包,用conda安装;(2)寻找老版本、文档的Miniconda重装,有一定概率解决该问题。
参考文件:https://www.zhihu.com/question/56272908/answers/updated
https://blog.csdn.net/weixin_40546602/article/details/105475416