【学习笔记】conda的使用
指令集合
设置镜像
1 | #设置清华镜像 |
管理conda
1 | conda update conda # 更新conda |
管理环境
查看环境
1 | conda env list |
以上三条命令都可以。注意最后一个是”--”,而不是“-”
所显示的列表中,前面带星号“*“的表示当前活动环境。
创建环境
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版本)
退出环境
1 | conda activate |
以上两条命令只中任一条都会让你回到base environment,它们从不同的角度出发到达了同一个目的地。可以这样理解,activate的缺省值是base,deactivate的缺省值是当前环境,因此它们最终的结果都是回到base
删除环境
执行以下命令可以将该指定虚拟环境及其中所安装的包都删除。
1 | conda remove --name env_name --all |
导出环境
1 | #获得环境名为env_name中的所有配置并保存配置信息到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
有什么区别?
- conda可以管理非python包,pip只能管理python包。
- conda自己可以用来创建环境,pip不能,需要依赖virtualenv之类的。
- conda安装的包是编译好的二进制文件,安装包文件过程中会自动安装依赖包;pip安装的包是wheel或源码,装过程中不会去支持python语言之外的依赖项。
- conda安装的包会统一下载到一个目录文件中,当环境B需要下载的包,之前其他环境安装过,就只需要把之间下载的文件复制到环境B中,下载一次多次安装。pip是直接下载到对应环境中。
- 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。如下图所示
conda的配置
.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