conda 添加国内源

添加国内源/通道, 默认源在国外, 国内访问较慢, 建议添加国内源, 下载更新能节省很多时间, 以下为清华的源, 比较常用
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
# 设置安装时显示源地址, 方便安装时知道包来自哪个源
conda config --set show_channel_urls yes

查看 conda 基本信息

# 查看 conda 版本信息
conda info
# 更新 conda 版本
conda update -n base conda 

conda 环境相关, 新建/激活/切换/删除

# 列出所有环境
conda env list
# 新建环境
# 新建一个名为 ENVNAME 的python版本为3.6的
conda create --name ENVNAME python=3.6# 这里 --name 可以缩写为 -n,所以下面这个用法更常用, 下文同样会使用这种缩写方式,查看所有的缩写
conda create -n ENVNAME python=3.6

# 也可在创建环境的同时安装一些包,也可以同时指定包的版本, 如
conda create -n ENVNAME python=3.7 numpy=1.16.4 matplotlib# 激活/切换环境
# 激活名为 ENVNAME 的环境
conda activate ENVNAME
# 激活特定路径的环境,笔者注: 这个命令偶尔会用
conda activate /path/to/environment-dir
# 关闭当前环境,笔者注: 如果不在继续使用此命令行窗口,直接关闭该窗口静即可
# 关闭环境后面不需要指定环境名,默认关闭当前环境
conda deactivate # 删除环境, 笔者注: 也可以直接删掉 anaconda 安装目录下 envs 里面的对应文件夹conda remove -n ENVNAME --all
# 复制环境, 笔者注: 不可通过复制 anaconda 安装目录下 envs 下的文件夹来复制环境, 因为这样的操作不会自己改变此环境里的配置信息, 对复制后的环境的操作会影响到原环境
# 复制 ENVNAME1, 新环境命名为 ENVNAME2
conda create -n ENVNAME2 --clone ENVNAME1

# 重命名, 目前没有直接重命名的命令, 需要先 clone 再 remove 旧环境
conda create -n ENVNAME2 --clone ENVNAME1
conda remove -n ENVNAME1 --all

包管理相关

# 列出当前环境已安装的所有包
conda list
# 列出指定环境的所有包
conda list -n ENVNAME 
# 列出当前环境变化的版本历史, 笔者注: 这个版本记录类似与git的记录, 记录你每次的包管理操作后环境记录
# 笔者注: 这个命令关键时候可以救命, 比方说你手贱升级了某个环境, 发现有问题想回滚到之前的环境状态时
conda list --revisions
# 同上, 列出指定环境的包管理变化的版本历史
conda list --name ENVNAME --revisions
# 结合上面两个命令使用, 先通过上面的命令列出所有版本, 然后通过下面这个命令会退到某个版本
conda install -n ENVNAME --revision REV_NUMBER
# 删除某个环境, 还有一个比较暴力的方式就是直接删除anaconda安装路径下的 envs/ENVNAME 文件夹
conda remove -n ENVNAME --all

环境共享相关

# 复制指定环境
conda create --clone ENVNAME --name NEWENV
# 导出指定环境到YAML文件 (便于在另一台电脑上导入以恢复同样的环境)
conda env export --name ENVNAME > envname.yml
# 从YAML文件创建环境
conda env create --file envname.yml
# 如果当前目录下有 environment.yml 文件, 也不输入文件名直接创建环境,如下:
conda env create
# 导出当前环境的包版本列表
conda list --explicit > pkgs.txt
#或者使用下面命令导出更简单的包列表
conda list -e > pkgs.txt# 基于包版本清单创建环境conda create --name NEWENV --file pkgs.txt

Packages(包)和Channels(源/通道)的使用

# 添加 Channels
conda config --add channels CHANNELNAME
# 使用conda从已配置的Channels中搜索包, 可以带上版本号, 笔者注: 用得少, 图形界面的系统下, 可以直接百度/google搜索更方便一点
conda search numpy=1.16
# 使用anaconda从所有Channels中搜索包
anaconda search FUZZYNAME
# 从指定通道安装包,如
conda install conda-forge::PKGNAME
# 安装指定版本的包,一个等号或2个等号均可
conda install PKGNAME==3.1.4
# 卸载当前环境的某个包
conda uninstall PKGNAME
# 卸载指定环境的某个包
conda uninstall -n ENVNAME PKGNAME
# 升级环境的所有包, 同样可以指定环境
conda update --all -n ENVNAME
# 升级某个包, 同样可以通过 -n ENVNAME 指定环境
conda update PKGNAME

其他有用的命令

# 搜索包时加上 --info, 可以输出包的详细信息
conda search PKGNAME --info
# 清理不用的缓存和包, 有时可以轻轻松松清理出几个G, 但如果不是硬盘空间特别有限的情况, 建议不用清理, 因为安装包如果缓存中有这个包就不用重新下载了
conda clean --all
# 安装包且输出命令提示,也就是直接安装不需要确认, 再写自动运行的脚本时会很有用
conda install --yes PKG1 PKG2
# 输出conda的配置
conda config --show
最后修改:2024 年 12 月 27 日
如果觉得我的文章对你有用,请随意赞赏