conda 常用命令

一 管理自身

1.1 查看conda版本

conda --version

1.2 查看conda的环境配置

conda config --show

1.3 设置镜像

#设置清华镜像
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

1.4 更新conda到最新版本

conda update conda

1.5 更新anaconda整体

conda update Anaconda

1.6 查询某个命令的帮助

conda xxxx --help  #例如 conda create --help

二 管理环境

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

(Virtual Environment),这些环境各自包含属于自己的文件、包以及他们的依存关系,并且不会相互干扰。

Anaconda有一个缺省的名为base的环境。但是不建议把程序放在base环境中,应该创建不同的虚拟环境分别管理不同的开发项目。这个涉及到一个根本的问题:为什么我们需要虚拟环境呢?举一个简单的例子,想象一下你有多个项目要开发,每个项目中都有一些包要依赖于某个共同的包,但是各自的所需要的版本不一致,有一些需要低版本的,有些需要高版本的。然后你就陷入了众口难调的困境。为不同的项目创建虚拟环境就可以把不同项目隔离开来,各自使用自己所需要的软件环境。

2.1 创建虚拟环境

conda create -n env_name python=3.10   #创建一个名为:env_name的虚拟环境,使用的python版本为:3.10

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

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

conda create -n env_name numpy pymysql python=3.10  # 创建的时候安装了numpy pymysql等包,但是不建议这样做,最好分开执行。

2.3 查看环境列表

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

2.4 激活虚拟环境

conda activate env_name #激活名为env_name 的虚拟环境

2.5 退出虚拟环境

conda activate
conda deactivate

2.6 删除虚拟环境

conda remove --name env_name --all

2.7 删除虚拟环境中的某个包

conda remove --name env_name package_name #env_name 是环境的名称,package_name 是要移除的包的名称

2.8 导出环境

conda env export --name env_name > env.yml  # 导出env_name虚拟环境到env.yml文件中
conda env create -f env.yml  # 使用env.yml # 创建虚拟环境

三 包的管理

3.1 查询报的安装情况

conda list #查询昂前环境中安装了那些包
conda search package_name #查询conda仓库中是否有这个包

3.2 包的安装和更新

conda install package_name # 在当前环境中安装包
conda install package_name=1.0.0 # 安装指定版本的包
conda update package_name # 更新包到最新版本
conda install package_name -c conda_forge # 从指定的渠道安装包

3.3 卸载包

conda uninstall package_name # 卸载指定包

3.4 清理anaconda缓存

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

四 python版本的管理

4.1 改变当前环境中的python版本

conda install python=3.10  # 将当前环境的python版本改为3.10
python --version # 改变完后查看是否符合预期

4.2 将python更新到最新版本

conda update python

五 其他

5.1 pip instal 和 conda install的区别

  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卸载。

pip和conda在安装软件包时,在依赖关系方面的处理机制不同。pip在递归的串行循环中安装依赖项,不会确保同时满足所有软件包的依赖关系,如果按顺序较早安装的软件包相对于按顺序较晚安装的软件包具有不兼容的依赖项版本,则可能导致环境以微妙的方式被破坏掉;conda使用SAT(satisfiability)solver来验证是否满足环境中安装的所有软件包的所有要求,只要有关依赖项的软件包元数据正确,conda就会按预期产生可用的环境。

5.2 pip和conda能否混用

不建议混用。混用容易导致库的依赖关系出现混乱,然后突然哪天环境可能就崩了,安装不了新的包,无法进行conda update之类的命令。

5.3 安装的位置

  • 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文件夹中

5.4 channel管理

# 追加新channel
conda config --add channels conda_name
# 移除channel
conda config --remove channels conda_name
# 查看channel配置
conda config --get channels

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注