【Python-Conda】Conda操作解读 & conda与pip的区别
文章目录
- 【Python-Conda】Conda操作解读 & conda与pip的区别
- 1. 介绍
- 2. conda 操作
- 2.1 创建环境
- 2.2 查看conda已创建的环境
- 2.3 删除环境
- 2.3.1 删除虚拟环境中的包
- 2.4 激活(失活)环境
- 2.4.1 激活
- 2.4.2 失活
- 2.4.3 在激活的环境中安装包
- 2.5 换源(加快下载速度)
- 2.5.1 Windows换源
- 2.5.2 Linux换源
- 2.6 克隆环境
- 2.7 重命名环境
- 2.8 复制环境列表到文本文档
- 2.9 anaconda prompt光标消失
- 3. pip 和 conda 的区别
- 3.1 区别
- 3.2 总结
- 4. 参考
1. 介绍
- 什么是 conda?
Conda 是一个开源的软件包管理系统和环境管理系统,用于安装多个版本的软件包及其依赖关系,并在它们之间轻松切换。
举个例子,当多个用户共享一个服务器时,会有两种情况:
- 用户没有自己的默认用户路径,此时如果安装conda之后,那么我们可以使用conda为每个用户创建特定的 python运行环境(包)。
- 每个用户都有自己的用户路径,这时候,
- 每个用户既可以在自己的默认路径下,安装自己的conda(python),拥有自己默认的python路径
- 在这个基础上,用户又可以为自己每个不同的项目建立不同的python 运行环境(conda create) 。(同1)
- 也可以,都使用全局的python(conda),为自己建立不同的运行环境。(同1)。
- 每个用户既可以在自己的默认路径下,安装自己的conda(python),拥有自己默认的python路径
2. conda 操作
2.1 创建环境
conda create -n [环境名称] python=[python版本]
举例:
conda create -n test python=3.7
2.2 查看conda已创建的环境
conda info -e
或
conda env list
- 当前使用的环境会在前方标注一个星号
2.3 删除环境
conda remove -n [环境名称] --all
举例:
conda remove -n test --all
2.3.1 删除虚拟环境中的包
conda remove --name $your_env_name $package_name(包名)
2.4 激活(失活)环境
2.4.1 激活
conda activate [环境名称]
举例:
conda activate test
2.4.2 失活
conda deactivate
2.4.3 在激活的环境中安装包
conda install package_name(包名)
2.5 换源(加快下载速度)
2.5.1 Windows换源
- 在C盘你的用户路径下先创建一个文件夹,命名为pip
- 在pip文件夹中再创建一个文本文档,先使用默认名称就行最后修改名称,在文档中输入下列内容
[global]
timeout = 6000
index-url = Simple Index
trusted-host = pypi.douban.com
- 现在使用的是豆瓣源,也可以换成清华源,阿里源等
- 最后,再将文本文档重命名为pip.ini
2.5.2 Linux换源
也是在你的用户路径下创建文件夹 .pip,在其中新建文本文件,命名为pip.conf。在其中输入如下内容。
2.6 克隆环境
有时候我们要创建一个新的环境时没有网络,这个时候我们可以使用克隆环境
conda create -n test1 --clone test
- 这样就可以在无网络的状态下创建一个新的环境。
2.7 重命名环境
conda中没有直接重命名环境的命令,但是我们可以通过一下两步模拟重命名的操作
- 1)克隆当前环境,同时给新环境一个想要的名字
- 2)删除旧环境
2.8 复制环境列表到文本文档
当我们需要给客户交付代码时,通常要同时交付环境,此时我们需要冻结pip list 。如何做呢?
- 先激活该环境,然后输入:
pip freeze > requirements.txt
- 运行之后,它会在我们运行的目录下生成requirements.txt
- 交给对方后,对方创建一个新的环境后,输入:
pip install -r requirement.txt
,即可得到交付环境。
2.9 anaconda prompt光标消失
在anaconda prompt中有时会出现光标消失的情况。
- 这个我们如果编辑很多的内容的时候,我们找不到光标就很麻烦,这个时候重新开启anaconda窗口可以解决问题,但是大多数情况我们是不想重新开启窗口的
如何使光标恢复正常?
- 这个时候你切到中文的输入法,然后输入几个拼音。
- 然后不要按1,直接按shift
- 然后消失的光标重新出现了
3. pip 和 conda 的区别
3.1 区别
- pip是Python包的通用管理器; conda是一个与语言无关的跨平台环境管理器。pip在任何环境中安装python包;conda需要在conda环境中装任何包。
- Pip代表Pip Installs Packages,是Python的官方认可的包管理器,最常用于安装在Python包索引(PyPI)上发布的包。
- conda是用来安装conda package,虽然大部分conda包是python的,但它支持了不少非python语言写的依赖项,比如mkl cuda这种c c++写的包。
- conda安装的都是编译好的二进制包,不需要你自己编译。所以,pip有时候系统环境没有某个编译器可能会失败,conda不会。这导致了conda装东西的体积一般比较大,尤其是mkl这种,动不动几百兆甚至一G多。
- conda功能其实比pip更多:
- pip几乎就是个安装包的软件,conda是个环境管理的工具。
- conda自己可以用来创建环境,pip不能,需要依赖virtualenv之类的。
- 意味着你能用conda安装python解释器,pip不行。这一点我觉得是conda很有优势的地方,用conda env可以很轻松地管理很多个版本的python,pip不行。即,conda,可以为不同的任务创建不同的环境,即conda具有环境隔离功能。
conda和pip对于环境依赖的处理不同,总体来讲,conda比pip更加严格,conda会检查当前环境下所有包之间的依赖关系,pip可能对之前安装的包就不管了。这样做的话,conda基本上安上了就能保证工作,pip有时候可能装上了也不work。
3.2 总结
conda
- 优势:包之间严格的依赖检查;是一个超越Python的环境管理器,可以创建多个环境,环境之间互相隔离;支持Python、R、C/C++;NumPy、SciPy直接使用Intel MKL,对Intel的CPU支持更好。
- 缺点:没做好环境隔离的话,一些包可能安装不上。
pip
- 优势:绝大多数包优先发布到pip上,安装方便,群众基础好。
- 缺点:不进行严格的依赖检查。对于绝大多数朋友,只是在自己的个人电脑上,用NumPy,做图,其实用pip和conda区别真的不大。
如果是搞研究或者开发,在一台服务器上多人共享使用,我建议最好是conda。用版本迭代很快的库,我建议使用conda。
4. 参考
【1】https://blog.csdn.net/potato123232/article/details/118419642
【2】https://blog.csdn.net/qq_29258377/article/details/124698501