conda介绍
任何语言的包、依赖和环境管理 --- 支持Python, R, Ruby, Lua, Scala, Java, JavaScript, C/ C++, FORTRAN
功能:
包管理:方便的安装、更新、卸载python包,同时可以管理包的版本避免不同项目之间的依赖冲突
环境管理:用户可以通过conda创建、激活、切换和删除python环境,隔离不同项目的依赖关系,避免版本冲突。
跨平台兼容性:不同操作系统,都能提供一致的管理体验
包仓库管理:支持多个包仓库,允许用户从不同的源安装软件包
优点:
- 快速安装、运行和更新包及其依赖项
- 轻松地在本地计算机上创建、保存、加载和切换环境
安装Conda
根据不同的需求,从 Anaconda 和 Miniconda 二者选其一进行,进行安装即可:
- 图方便,省事,想一步到位就可以选 Anaconda:Download Success | Anaconda
- 想要小巧,灵活,快速就选 Miniconda:Miniconda — Anaconda documentation
以下就是需要添加的环境变量,相应用户的目录存在差异,但是后面的路径名称相同。
D:\anaconda
D:\anaconda\Scripts\
D:\anaconda\Library\bin
D:\anaconda\Library\mingw-w64\bin
安装检验:
conda --version
pycharm配置conda环境
Conda使用实例
查看所有环境的列表
借助 conda info
命令可以查看与 conda 相关的一些信息,配合 -e, --envs
选项,可以查看所有环境的列表(conda 会默认创建一个 base
环境)
$ conda info --envs
# conda environments:
#
base * /usr/local/Caskroom/miniconda/base
创建一个新环境
通过 conda create
命令可以创建一个新环境,利用 --name
选项,可以为新环境命名,比如:创建一个新环境 test
conda create --name test
使用或"激活"新环境
要使用或"激活"新环境,需要使用下面的命令,比如:激活 test
环境:
conda activate test
- 如果直接使用
conda activate
(不带环境名),会默认切回base
环境
再次查询所有环境的列表:
$ conda info --envs
# conda environments:
#
base /usr/local/Caskroom/miniconda/base
test * /usr/local/Caskroom/miniconda/base/envs/test
观察 *
的变化可以发现,当前已经成功切换到 test
环境
Notes:
conda activate
仅适用于 conda 4.6 及更高版本
删除一个环境
删除环境需要用到 conda remove
命令:
conda remove --name ENVIRONMENT --all
比如:删除前面创建的 test 环境
conda remove --name test --all
查询所有环境的列表,看是否删除成功:
# conda environments:
#
base * /usr/local/Caskroom/miniconda/base
发现已经成功删除,只剩下 base 环境。
conda 管理 Python 版本
在前面创建新环境时,conda 会默认安装在下载和安装 Anaconda/Miniconda 时使用的相同 Python 版本。
如果要使用不同版本的 Python,例如 Python 3.10.11,只需创建一个新环境并指定所需的 Python 版本即可。
创建环境时指定 Python 版本
为了方便后面比较,先查询一下 base
环境下的 Python 版本:
$ conda activate && Python -V
Python 3.10.11
然后创建一个名为 test
的包含 Python 3.7.1 的新环境:
conda create --name test python=3.7.1
验证一下是否成功,切换到 test 环境,查询 Python 版本:
$ conda activate test && Python -V
Python 3.7.1
从展示的结果来看已经成功,test 环境下的 Python 版本为我们指定的 3.7.1 版本
Conda 配置
conda 配置文件 .condarc
是一个可选的运行时配置文件[5],它允许高级用户配置 conda 的各个方面,例如它搜索包的渠道、代理设置和环境目录。
.condarc
文件可以更改许多参数,包括:
- conda 在哪里寻找包
- conda 是否以及如何使用代理服务器
- conda 列出已知环境的位置
- 是否使用当前激活的环境名称更新 Bash 提示符
- 用户构建的包是否应该上传到 http://Anaconda.org
- 在新环境中包含哪些默认包或功能
创建和编辑配置文件
默认情况下不包含 .condarc
文件,但它会在第一次运行 conda config
命令时自动在主目录(~
)中创建。
可以通过 conda config
命令创建或修改 .condarc 文件,也可以直接在 Home 目录或者根目录直接创建或者编辑 .condarc
文件,需要注意的是,.condarc
配置文件遵循简单的 YAML 语法。
可以通过 conda info
命令来查找有关 .condarc
文件的信息:
$ conda info | grep -i config
user config file : /Users/borne/.condarc
populated config files :
配置文件的搜索路径
Conda 在以下位置查找 .condarc
文件:
if on_win:
SEARCH_PATH = (
"C:/ProgramData/conda/.condarc",
"C:/ProgramData/conda/condarc",
"C:/ProgramData/conda/condarc.d",
)
else:
SEARCH_PATH = (
"/etc/conda/.condarc",
"/etc/conda/condarc",
"/etc/conda/condarc.d/",
"/var/lib/conda/.condarc",
"/var/lib/conda/condarc",
"/var/lib/conda/condarc.d/",
)
SEARCH_PATH += (
"$CONDA_ROOT/.condarc",
"$CONDA_ROOT/condarc",
"$CONDA_ROOT/condarc.d/",
"$XDG_CONFIG_HOME/conda/.condarc",
"$XDG_CONFIG_HOME/conda/condarc",
"$XDG_CONFIG_HOME/conda/condarc.d/",
"~/.config/conda/.condarc",
"~/.config/conda/condarc",
"~/.config/conda/condarc.d/",
"~/.conda/.condarc",
"~/.conda/condarc",
"~/.conda/condarc.d/",
"~/.condarc",
"$CONDA_PREFIX/.condarc",
"$CONDA_PREFIX/condarc",
"$CONDA_PREFIX/condarc.d/",
"$CONDARC",
)
其中,需要特别说明的是:
XDG_CONFIG_HOME
是根据 XDG 基本目录规范 (XDGBDS) 定义的用户特定配置文件的存储路径CONDA_ROOT
是基本 conda 安装的路径CONDA_PREFIX
是当前活动环境的路径
配置间的优先级
当配置之间出现冲突时,采用以下策略:
- Lists - merge
- Dictionaries - merge
- Primitive - clobber
构建 conda 配置的优先级如下所示,从左到右优先级一次递增:
- Config files(by parse order):配置文件按照解析的顺序,优先级从高到低
比如:"~/.config/conda/.condarc"
优先级高于"~/.conda/.condarc"
- Config files specified by
$CONDARC
:$CONDARC
指向的配置文件优先级高于其他配置文件
- Command line parameter:通过
conda config --set
命令进行配置的优先级高于配置文件
- Environment variables:通过环境变量进行配置的优先级最高