【Python-Conda】Conda操作解读 &pip 和 conda 的区别

【Python-Conda】Conda操作解读 & conda与pip的区别

1. 介绍

  • 什么是 conda?
    Conda 是一个开源的软件包管理系统和环境管理系统,用于安装多个版本的软件包及其依赖关系,并在它们之间轻松切换。

举个例子,当多个用户共享一个服务器时,会有两种情况:

  1. 用户没有自己的默认用户路径,此时如果安装conda之后,那么我们可以使用conda为每个用户创建特定的 python运行环境(包)。
  2. 每个用户都有自己的用户路径,这时候,
    • 每个用户既可以在自己的默认路径下,安装自己的conda(python),拥有自己默认的python路径
      • 在这个基础上,用户又可以为自己每个不同的项目建立不同的python 运行环境(conda create) 。(同1)
    • 也可以,都使用全局的python(conda),为自己建立不同的运行环境。(同1)。

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)上发布的包。

在这里插入图片描述

扫描二维码关注公众号,回复: 14867557 查看本文章
  • 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

猜你喜欢

转载自blog.csdn.net/qq_51392112/article/details/130161762
今日推荐