conda安装和pip安装的区别

ps:仅记录个人学习经验(搬运+自己整理),如有错误还请指教!
参考来源:
http://bicmr.pku.edu.cn/~wenzw/pages/conda.html
https://www.zhihu.com/question/323484250?sort=created
https://www.zhihu.com/question/377375422/answer/1324273808
https://www.cnblogs.com/zhangxingcomeon/p/13801554.html

1. conda安装

conda 是anaconda提供的包&环境管理器,不只是python包管理器【与pip安装区分】,也可以用来管理C或C++库等。
不过anaconda本身只提供部分包,远没有pip提供的包多,有时conda无法安装我们需要的包,我们需要用pip将其装到conda环境里。

conda 环境管理器 允许用户创建多个隔离环境,注意这里的环境与module环境管理不同,这里的conda更多用于管理 不同版本的 python 的不同版本的库 :env1,env2,…, 允许其中每个 env[1-n]中的 numpy、scipy、torch、tensorflow…版本互不相同, 只需要环境内部保证版本依赖性兼容即可。
例如:A,B 两个库都依赖 C, 但 A 要求 C 的版本不能超过1.0,B 要求 C 的版本超过1.1,这时用户可以按照如下方式设置环境:
env0: A + C-v1.0 + 其他常用库
env1: B + C-v1.1 + 其他常用库
当用户需要使用 A 时切换到环境 env0,想使用 B 时切换到环境 env1。

安装位置:(此处本人没弄清楚,仅搬运)
conda install xxx,不管在什么环境下载的包,都统一放在一个目录里面:D:\Anaconda3\pkgs\包名

安装结果:
conda install 除了安装需要安装的包本身,还会自动安装所需包的依赖。

2. pip安装

pip是一个 Python 包安装与管理工具 ,提供了对Python 包的查找、下载、安装、卸载的功能。

安装位置:(此处本人没弄清楚,仅搬运)
pip install xxx,在特定环境里使用pip,下载的包会存在特定环境的目录里面,例如: D:\Anaconda3\envs\虚拟环境名\Lib\site-packages\包名

通常情况下,pip不像conda一样,它不知道环境,我们首先要确保我们用的是本环境的pip,这样 pip install 时,包才会创建到本环境中,不然包会创建到base环境,供各个不同的其他conda环境共享,此时可能会产生版本冲突问题(不同环境中可能对同一个包的版本要求不同)。

安装结果:
pip install 只是安装你需要安装的那个包本身。

例如:安装 tensorflow-gpu
① 用 pip 安装的话,只会安装 tensorflow-gpu 这个包,它的依赖(比如 cuda)需要手动安装,而且版本配置不对的话,可能导致 tensorflow-gpu 无法使用;
② 用 conda 安装的话,除了安装 tensorflow-gpu 这个包,它会自动检测这个包所需的依赖,如果没有,会自动安装一遍。

总结:

用大白话总结一下,我个人的理解是这样的:
pip 的功能 conda 基本都涵盖了(python中有些包anaconda没有提供就用pip安装),除此之外 conda 还可以用来管理 C,C++ 库等,然后conda还有环境管理的作用。
关于安装的结果,pip 是指定安装哪个依赖包就安装哪个依赖包,绝不多干活;而 conda 是属于那种会来事的,让你安装哪个依赖包它会去完成,但是这个包依赖的其他的包它也会主动去安装。
关于安装位置, 其实里面相关的内容本人还没有完全弄明白,比如conda安装和pip安装的路径,conda环境下pip和conda安装的区别,pip和conda是全局安装还是局部安装。之后整明白后想起来再来更新。

你可能感兴趣的:(python,anaconda,pip)