指令集合

设置镜像

1
2
3
4
5
6
7
#设置清华镜像
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/
#设置搜索时显示通道地址
conda config --set show_channel_urls yes

管理conda

1
2
3
4
5
conda update conda  # 更新conda
conda update Anaconda # 更新整个Anaconda
conda clean -p # 删除没有用的包
conda clean -t # 删除tar打包
conda clean -a # 删除所有的安装包及cache(索引缓存、锁定文件、未使用过的包和tar包)

管理环境

查看环境

1
2
3
conda env list
conda info -e
conda info --envs

以上三条命令都可以。注意最后一个是”--”,而不是“-”

image-20230726105204603

所显示的列表中,前面带星号“*“的表示当前活动环境。

创建环境

1
conda create -n xxx  # 创建环境名为xxx的环境

例如创建环境名为py39的环境并安装python3.9

1
conda create -n py39 python==3.9

这表示创建python版本为3.9、名字为py39的虚拟环境

创建后,py39文件可以在Anaconda安装目录envs文件下找到。在不指定python版本时,自动创建基于最新python版本的虚拟环境。

激活环境

1
conda activate xxx  # 激活环境名为xxx的环境

此时使用python --version可以检查当前python版本是否为所想要的(即虚拟环境的python版本)

image-20230726105525458

退出环境

1
2
conda activate
conda deactivate

以上两条命令只中任一条都会让你回到base environment,它们从不同的角度出发到达了同一个目的地。可以这样理解,activate的缺省值是base,deactivate的缺省值是当前环境,因此它们最终的结果都是回到base

删除环境

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

1
conda remove --name env_name --all

导出环境

1
2
3
4
#获得环境名为env_name中的所有配置并保存配置信息到my_env.yml文件中
conda env export --name env_name > my_env.yml
#重新还原环境
conda env create -f my_env.yml

管理包

查询包

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

1
conda list

查看Anaconda repository中是否有xxx包(联网查询)

1
conda search xxx

安装包

在当前环境中安装package_name包

1
conda install package_name

也可以指定安装的包的版本

1
conda install package_name==1.0.0

例如,安装numpy版本为0.20.3

1
conda install numpy==0.20.3

更新包

1
conda update package_name

将package_name包更新到最新版本

卸载包

1
conda uninstall package_name

卸载包名为package_name的包

conda与pip

有什么区别?

  1. conda可以管理非python包,pip只能管理python包。
  2. conda自己可以用来创建环境,pip不能,需要依赖virtualenv之类的。
  3. conda安装的包是编译好的二进制文件,安装包文件过程中会自动安装依赖包;pip安装的包是wheel或源码,装过程中不会去支持python语言之外的依赖项。
  4. conda安装的包会统一下载到一个目录文件中,当环境B需要下载的包,之前其他环境安装过,就只需要把之间下载的文件复制到环境B中,下载一次多次安装。pip是直接下载到对应环境中。
  5. conda只能在conda管理的环境中使用,例如比如conda所创建的虚环境中使用。pip可以在任何环境中使用,在conda创建的环境 中使用pip命令,需要先安装pip(conda install pip ),然后可以 环境A 中使用pip 。conda 安装的包,pip可以卸载,但不能卸载依赖包,pip安装的包,只能用pip卸载。

安装在哪里?

  • conda install xxx:这种方式安装的库都会放在anaconda3/pkgs目录下,这样的好处就是,当在某个环境下已经下载好了某个库,再在另一个环境中还需要这个库时,就可以直接从pkgs目录下将该库复制至新环境而不用重复下载。
  • pip install xxx:分两种情况,一种情况就是当前conda环境的python是conda安装的,和系统的不一样,那么xxx会被安装到anaconda3/envs/current_env/lib/python3.x/site-packages文件夹中,如果当前conda环境用的是系统的python,那么xxx会通常会被安装到~/.local/lib/python3.x/site-packages文件夹中

如何判断conda中某个包是通过conda还是pip安装的?

执行 conda list ,用pip安装的包显示的build项目为pypi。如下图所示

image-20230726113303750

conda的配置

.condarc文件在哪儿?

执行conda info,如下图所示

image-20230726114544635

channel管理

追加conda-forge channel:

conda config --add channels conda-forge

移除conda-forge channel:

conda config --remove channels conda-forge

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

conda config --get channels

image-20230726114725437