查看原文
其他

pip install 和conda install有什么区别吗?

点击上方“Python编程时光”,选择“加为星标
第一时间关注Python技术干货!


后台回复关键字 “黑魔法”,即可获取明哥整理的《Python黑魔法指南

大部分情况下没什么区别。基本上,我更喜欢用pip,因为国内用pip网速比conda快哈哈,即便是用了国内源的情况下。

正式一点地说,pip和conda功能相似,但仍然有一些区别,conda官方就有文章专门说这个:https://www.anaconda.com/blog/understanding-conda-and-pip

pip是用来安装python包的,安装的是python wheel或者源代码的包。从源码安装的时候需要有编译器的支持,pip也不会去支持python语言之外的依赖项。

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和pip对于环境依赖的处理不同,总体来讲,conda比pip更加严格,conda会检查当前环境下所有包之间的依赖关系,pip可能对之前安装的包就不管了。这样做的话,conda基本上安上了就能保证工作,pip有时候可能装上了也不work。不过我个人感觉这个影响不大,毕竟主流包的支持都挺不错的,很少遇到broken的情况。这个区别也导致了安装的时候conda算依赖项的时间比pip多很多,而且重新安装的包也会更多(会选择更新旧包的版本)。

最后,pip的包跟conda不完全重叠,有些包只能通过其中一个装。


作者:知乎@马索萌
https://www.zhihu.com/question/395145313/answer/1230725052



推荐阅读



太赞了!《Python 黑魔法指南》终于面世了

520情人节:属于Python 程序员的脱单攻略大合集

一道 3 行代码的 Python面试题,我懵逼了一天

如何用简单的位操作实现高级算法

Python吊打Excel?屁!那是你不会用!

别乱提交代码了,来围观下大厂的 Git 提交规范

Python炫技操作:花式导包的八种方法




长按下图  ➡   关注博主

(按左边关注 Python, 按右边关注 Goalng


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存