简介
Conda是一个非常方便的开源包管理系统,可以用于在各种操作系统上安装管理软件包和环境。
在我们玩Python时,经常会遇到的问题Python版本不兼容的问题,而venv
这样的工具,在不折腾的情况下,只能创建和当前宿主机Python环境版本号相同的Python环境,而利用Conda
,我们就可以随意创建和切换虚拟Python环境了。
关于Anaconda
和Conda
之间的关系:
Anaconda是一个用于数据科学、机器学习和高性能计算的开源发行版,它基于Python语言,提供了大量常用的数据科学、机器学习和高性能计算的工具和库。Conda是Anaconda的包管理器,它主要用于管理Anaconda中的程序包和环境。所以Anaconda是Conda的发行版,Conda是Anaconda的包管理器。
我们应该选择安装哪个?
如果你是科学计算、数据分析或机器学习方面的开发人员,那么可能需要安装Anaconda,因为它预装了大量的数据科学工具和库。而如果你只是想使用Conda作为包管理器和环境管理器,那么您可以安装Miniconda,它只包含Conda和必要的依赖项。
即Anaconda
是Conda
的发行版,而且内置了Conda
,因此推荐直接一步到位安装Anaconda
。
安装Anaconda
带GUI的图形化操作系统
Anaconda
:官方网站
首先点击中间的Download
按钮下载安装包
安装过程很简单,直接无脑下一步就行了。
安装完毕后,打开一个新的终端窗口,输入conda --version
命令,能正常显示版本号即代表安装成功
不带GUI的操作系统
可以直接执行官方给的安装脚本:
进入发行版下载页面,找到Linux安装相关的链接,复制这个链接。
在机器上执行Shell脚本即可开始安装
bash <(curl -s <安装脚本链接>)
# 例如
bash <(curl -s https://repo.anaconda.com/archive/Anaconda3-2022.10-Linux-x86_64.sh)
使用Conda
一些常用的conda命令包括:
- conda create: 创建一个新的环境
- conda activate: 激活一个环境
- conda install: 安装软件包
- conda update: 更新软件包
- conda list: 列出当前环境中安装的软件包
- conda remove: 卸载软件包
通过使用这些命令,您可以在不影响其他环境的情况下安装、更新和管理软件包。
使用示例
查看所有可用的Python版本
在配置环境前,如果想知道有哪些Python3环境是可用的,那么可用使用下面这个命令来查询
conda search "^python=3"
创建多个Python虚拟环境
我们可以使用Conda
在同一个系统中,创建多个不同的Python环境。比如说,我想创建一个名为py37
的Python3.7环境还有一个名为py311
的Python3.11环境,那我们就可以用下面这个命令创建
conda create --name py37 python=3.7
conda create --name py311 python=3.11
第一行命令创建了一个名为py37
的Python环境,该环境的Python版本为:3.7
第二行命令创建了一个名为py311
的Python环境,该环境的Python版本为:3.11
创建后,可以使用以下命令切换环境:
conda activate <env-name>
# 例如,切换到名为py37的Python环境
conda activate py37
退出与删除虚拟环境
如果我们需要退出Conda
的虚拟环境,可以使用下面这个命令来退出:
conda deactivate
如果我们需要彻底删除一个Conda
虚拟环境,可以用下面这个命令删除(假设要删除名为py311
的虚拟环境):
conda remove --name py311 --all
为一个项目单独创建一个虚拟环境
看到这里,可能会有同学想:Conda
可以像Pyvenv
那样,将每个项目的虚拟环境的包放到当前项目下的vnev
目录下吗?
其实是可以的,conda可以像pyvenv那样将每个项目的虚拟环境的包放到当前项目下的venv目录下。
可以使用以下命令创建一个名为myenv的虚拟环境,并将其安装在当前项目的venv目录下:
conda create --prefix ./venv/myenv python=3.7
然后你可以使用以下命令激活该虚拟环境:
conda activate ./venv/myenv
Conda
环境配置的导出与导入
这里演示如何将项目的anacoda信息写到项目中(例如python版本、项目所需依赖),从而方便项目的其他协作者配置完全相同的环境
首先,使用conda env export
命令,将当前的Conda
环境导出到environment.yml
文件中
conda env export > environment.yml
导出后,当我们(或同学)在一个新的机器上配置环境时就方便多了,直接使用下面这个命令来创建环境
conda env create -f environment.yml
注:如果你导出的
Conda
环境配置文件带prefix
配置,即Conda
环境指定了文件路径。它在重新配置时也许不会生效。此时你可以在创建环境的命令后面加上--prefix
,例如:conda env create -f environment.yml --prefix ./venv/py38
常见问题
为什么我安装Anaconda后,终端前面都会默认带上
(base)
? 如何取消?
相关问题:StackOverflow
解决方案:
使用下面这个命令,将自动激活base
环境的功能取消掉
conda config --set auto_activate_base false
同理,哪一天想开启的话,将它设置会true
即可