本文最后更新于 2024-08-15,文章内容可能已经过时。

😋前言

Anaconda 是一款强大的 pythn 包管理工具,利用 conda 命令可以自由管理 pyhon 库,能自动索引下载相关的依赖库

官方网站:Anaconda | The Operating System for AI

mini-forge:conda-forge/miniforge: A conda-forge distribution. (github.com)

个人更喜欢用 mini-forge

📝管理 conda 自身

查看 conda 版本

conda --version

查看 conda 的环境配置

conda config --show

设置镜像

conda 有时候安装软件会非常慢。设置国内镜像的话可以使安装更快捷一些。设置方法如下所示:

#设置清华镜像
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/
#设置bioconda
conda config --add channels bioconda
conda config --add channels conda-forge
#设置搜索时显示通道地址
conda config --set show_channel_urls yes

更新 conda

将 conda 自身更新到最新版本

conda update conda

更新 Anaconda 整体

将整个 Anaconda 都更新到确保稳定性和兼容性的最新版本

conda update Anaconda

查询某个命令的帮助

conda create --help

🏝️管理环境

 Conda 允许你创建相互隔离的独立环境,这些环境被称之为虚拟环境

创建虚拟环境的同时安装必要的包

但是并不建议这样做,简化每一条命令的任务在绝大多数时候都是明智的(一个例外是需要反复执行的脚本)

conda create -n env_name numpy matplotlib python=3.10

查看有哪些虚拟环境

以下三条命令都可以。注意最后一个是」--」,而不是「-」.

conda env list
conda info -e
conda info --envs

激活虚拟环境

使用如下命令即可激活创建的虚拟环境。

conda activate env_name

退出虚拟环境

使用如下命令即可退出当前工作的虚拟环境。

conda activate
conda deactivate

删除虚拟环境

执行以下命令可以将该指定虚拟环境及其中所安装的包都删除。

conda remove --name env_name --all

如果只删除虚拟环境中的某个或者某些包则是:

conda remove --name env_name  package_name

导出环境

很多的软件依赖特定的环境,我们可以导出环境,这样方便自己在需要时恢复环境,也可以提供给别人用于创建完全相同的环境。

#获得环境中的所有配置
conda env export --name myenv > myenv.yml
#重新还原环境
conda env create -f  myenv.yml

📦包(Package)的管理

查询包的安装情况

查询看当前环境中安装了哪些包

conda list

查询当前 Anaconda repository 中是否有你想要安装的包

conda search package_name

当然与互联网的连接是执行这个查询操作乃至后续安装的前提条件.

查询是否有安装某个包

用 conda list 后跟 package 名来查找某个指定的包是否已安装,而且支持 * 通配模糊查找。

conda list pkgname 
conda list pkgname*

包的安装和更新

在当前(虚拟)环境中安装一个包:

conda install package_name

也可以以以下命令安装某个特定版本的包 (以下例为安装 0.20.3 版本的 numpy):

conda install numpy=0.20.3

以下命令可将某个包更新到它的最新版本 :

conda update numpy

再当前(虚拟)环境中更新所有包:

conda update --all

安装包的时候可以指定从哪个 channel 进行安装,比如说,以下命令表示不是从缺省通道,而是从 conda_forge 安装某个包。

conda install pkg_name -c conda_forge

conda 卸载包

conda uninstall package_name

这样会将依赖于这个包的所有其它包也同时卸载。

如果不想删除依赖其当前要删除的包的其他包:

conda uninstall package_name --force

但是并不建议用这种方式卸载,因为这样会使得你的环境支离破碎,如以下(conda manual description 原文)所述:

一个直观的理解就是,如果一个包 A 被删除了,而依赖于它的包 B、C 等却没有删除,但是那些包其实也已经不可用了。另一方面,之后你又安装了 A 的新版本,而不幸的是,B、C 却与新版本的 A 不兼容因此依然是不可用的。

清理 anaconda 缓存

conda clean -p      # 删除没有用的包 --packages
conda clean -t      # 删除tar打包 --tarballs
conda clean -y -all # 删除所有的安装包及cache(索引缓存、锁定文件、未使用过的包和tar包)

关于清除命令的更详细的说明,可以执行以下命令进行查询:

conda clean -h

conda 就像个守财奴一样,把每个历史安装包都会好好保存。。。好处是可以很方便地恢复到旧的历史版本,坏处是占内存空间。。。前两天由于安装一个新的包,系统报告「CondaMemoryError: The conda process ran out of memory. Increase system memory and/or try again.」,执行 "conda -y -all" 清除了约 30G 的空间!

🎏Python 版本的管理

除了上面在创建虚环境时可以指定 python 版本外,Anaconda 基环境的 python 版本也可以根据需要进行更改。

将版本变更到指定版本

conda install python=3.5

更新完后可以用以下命令查看变更是否符合预期。

python --version

将 python 版本更新到最新版本

如果你想将 python 版本更新到最新版本,可以使用以下命令:

conda update python

⚙️conda configuration

conda 的配置文件为 ".condarc",该文件在安装时不是缺省存在的。但是当你第一次运行 conda config 命令时它就被自动创建了。".condarc" 配置文件遵循简单的 YAML 语法。

".condarc" 文件在哪儿?

conda info

Channel 管理

追加 conda-forge channel:

conda config --add channels conda-forge

移除 conda-forge channel:

conda config --remove channels conda-forge

查询当前配置中包含哪些 channels

conda config --get channels

🧸参考文献

Anaconda conda 常用命令:从入门到精通 _conda list-CSDN 博客