Ubuntu20.04/22.04 + Conda 安装,软件包管理,环境管理命令总结

一、什么是 conda ?

conda 是开源包(packages)和虚拟环境(environment)的管理系统。

  1. packages 管理:可以使用 conda 来安装、更新 、卸载工具包 ,并且它更关注于数据科学相关的工具包。在安装 anaconda 时就预先集成了像 Numpy、Scipy、 pandas、Scikit-learn 这些在数据分析中常用的包。另外值得一提的是,Conda 是为 Python 程序创建的(所以 conda对python的版本非常敏感,尤其是base环境下的python版本,conda的启动依赖于base环境下的python版本,所以安装软件或者更新python版本,建议仅仅在env中进行操作),适用于 Linux,OS X 和Windows,也可以打包和分发其他软件。比如在新版的 Anaconda 中就可以安装R语言的集成开发环境 Rstudio

  2. environment管理:在conda中可以建立多个虚拟环境,用于隔离不同项目所需的不同版本的工具包,以防止版本上的冲突。对纠结于 Python 版本的同学们,我们也可以建立 Python2 和 Python3 两个环境,来分别运行不同版本的 Python 代码。

  3. 版本: conda分为anaconda和miniconda。anaconda是包含一些常用包的版本(包括numpy, sklearn, pandas等),miniconda则是精简版,需要啥装啥,所以推荐使用miniconda。

二、minconda安装与管理

  1. miniconda版本选择

miniconda官网:https://conda.io/miniconda.html

  1. 选择适合自己的版本,用wget命令下载
wget -c https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
这个版本是适合于linux的,要看清楚噢。这里选择的是latest-Linux版本,所以下载的程序会随着python的版本更新而更新(现在下载的版本默认的python版本已经是3.8了)
  1. 安装
chmod 777 Miniconda3-latest-Linux-x86_64.sh #给执行权限
bash Miniconda3-latest-Linux-x86_64.sh #运行

如果此时输入conda提示没有此命令的时候,可以通过执行

source ~/.bashrc

来更新系统索引。由于系统默认是打开base环境,如果想关闭自启动的base环境可以执行

conda config --set auto_activate_base false

注意,如果是第一次安装,则一路yes下来就可以。如果之前conda安装过软件,则一路yes下来是会有隐患。conda会污染你原来的环境,把你原来设置好的东西进行更改。所谓的会污染环境等等问题可能都是将大量的软件直接安装在conda的base环境中引起的,只要养成好的使用习惯,灵活使用conda create 命令将不同的软件安装到自己单独的虚拟环境中就可以了。把conda这条蟒蛇关进一个一个的笼子里,才能更好的为我们的科研服务~

  1. conda安装好后会多几个软件

Anaconda Navigtor :用于管理工具包和环境的图形用户界面,后续涉及的众多管理命令也可以在 Navigator 中手工实现。
Jupyter notebook :基于web的交互式计算环境,可以编辑易于人们阅读的文档,用于展示数据分析的过程。
qtconsole :一个可执行 IPython 的仿终端图形界面程序,相比 Python Shell 界面,qtconsole 可以直接显示代码生成的图形,实现多行代码输入执行,以及内置许多有用的功能和函数。
spyder :一个使用Python语言、跨平台的、科学运算集成开发环境。

  1. 添加channel

这个道理跟家里的电视机是一样一样的,安装conda就相当于买了一台电视机,但是有电视了不意味着你就能看节目了,你要手动添加频道才能看你想看的电视节目。

# 官方channel: 
conda config --add channels bioconda
conda config --add channels conda-forge
# 清华镜像channels:
# 默认只需要添加清华的channel就可以
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
# 查看已经添加的channels,下面2条命令均可以
conda config --get channels
vim ~/.condarc
  1. conda版本查看
conda -V
conda --version 
  1. conda更新
conda update conda           #更新conda
conda update anaconda        #更新anaconda
conda update anaconda-navigator    #update最新版本的anaconda-navigator   

三、packages 管理

  1. 查看已安装的包
# 查看当前环境下已安装的包
conda list
# 查看某个指定环境(xxxxx)下已安装的包
conda list -n xxxxx
# 查找package信息,例如查找numpy包信息,会列numpy的所有版本
conda search numpy
  1. 安装package
conda install -n xxxxx numpy pandas

安装多个包用空格隔开
如果不用-n指定环境名称,则被安装在当前环境
也可以通过-c指定通过某个channel安装

  1. 更新package
conda update numpy           # 更新numpy(当前活跃的环境)  
conda update -n xxxxx numpy  # 更新指定xxxxx环境下的numpy
conda update python          # 假设当前环境是python3.4, conda会将python升级为3.4.x系列的最新版本
  1. 删除package
conda remove numpy           # 删除numpy包(当前活跃的环境)
conda remove -n xxxxx numpy  # 删除xxxxx环境下的包

四、environment 管理

  1. 查看已创建的虚拟环境
conda env list 
conda info -e
conda info --env
  1. 环境启动和关闭
conda activate xxxx           #开启xxxx环境
conda deactivate              #关闭环境
  1. 创建虚拟环境
conda create -n env_name list_of_packages
env_name是需要创建的环境名称,list_of_packages是在新环境中需要安装的工具包,有多个时用空格隔开创建一个名为的环境,指定Python版本是3.5(conda会自动寻找3.5.x中的最新版本)
conda create -n xxxx python=3.5
conda create --name xxxx python=3.5  
  1. 删除虚拟环境
conda remove -n xxxx --all  #删除一个已有的环境
  1. 克隆虚拟环境
conda create -n BBB --clone AAA   # 克隆环境,我想创建一个新环境BBB,完全克隆AAA的环境配置
  1. 环境重命名
conda没有重命名的命令,所以可以先 clone 一个环境,然后删除原有的环境
  1. 环境导入与导出
# 如果想要导出当前环境的包信息可以用
conda env export > environment.yaml  # 将包信息存入yaml文件中.
# 当需要重新创建一个相同的虚拟环境时可以用
conda env create -f environment.yaml

五、conda,anaconda,pip的关系

  • conda和anaconda的区别在于:anaconda是一套整体的软件包管理和环境管理系统,里面包含了虚拟环境,仓库,第三方软件等,而conda仅仅是其中的核心,位于anaconda/lib/conda,是一个执行命令的工具。广义上认为conda等价于anaconda。

  • conda与pip都是软件包管理工具,但是区别在于:
    在这里插入图片描述

  1. conda将下载的第三方软件包安装在anaconda/pkgs,而pip将软件安装在anaconda/bin/site-packdge
  2. pip是用来安装python包的,安装的是python wheel或者源代码的包。从源码安装的时候需要有编译器的支持,pip也不会去支持python语言之外的依赖项。
  3. conda是用来安装conda package,虽然大部分conda包是python的,但它支持了不少非python语言写的依赖项,比如mkl cuda这种c c++写的包。然后,conda安装的都是编译好的二进制包,不需要你自己编译。所以,pip有时候系统环境没有某个编译器可能会失败,conda不会。这导致了conda装东西的体积一般比较大,尤其是mkl这种,动不动几百兆甚至一G多。
  4. 然后,conda功能其实比pip更多。pip几乎就是个安装包的软件,conda是个环境管理的工具。conda自己可以用来创建环境,pip不能,需要依赖virtualenv之类的。意味着你能用conda安装python解释器,pip不行。这一点我觉得是conda很有优势的地方,用conda env可以很轻松地管理很多个版本的python,pip不行。
  5. 然后是一些可能不太容易察觉的地方。conda和pip对于环境依赖的处理不同,总体来讲,conda比pip更加严格,conda会检查当前环境下所有包之间的依赖关系,pip可能对之前安装的包就不管了。这样做的话,conda基本上安上了就能保证工作,pip有时候可能装上了也不work。不过我个人感觉这个影响不大,毕竟主流包的支持都挺不错的,很少遇到broken的情况。这个区别也导致了安装的时候conda算依赖项的时间比pip多很多,而且重新安装的包也会更多(会选择更新旧包的版本)。
  6. 最后,pip的包跟conda不完全重叠,有些包只能通过其中一个装。

如有任何问题,欢迎留言。

  • 9
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值