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

Python知识圈

共 1478字,需浏览 3分钟

 · 2020-05-27

点击上方Python知识圈设为星标

回复1024获取Python资料


3768f7d972037b744fb6524307a55a72.webp


阅读文本大概需要 2 分钟


点击「阅读原文」查看pk哥原创精品视频。

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

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

377f2632a1c01d1bf836b3e808ffbc0f.webp

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

7dc350225c392cae8a00db803d729aeb.webp
-----------------------公众号:Python知识圈博客:www.pyzhishiquan.com知乎Python知识圈微信视频号:菜鸟程序员 (分享有趣的编程技巧、Python技巧)bilibili:菜鸟程序员的日常(目前原创视频:14,累计播放量:50万)

一个学习Python的人,喜欢分享,喜欢搞事情!

长按下图二维码关注,和你一起领悟Python的魅力



Python知识圈公众号的交流群已经建立,群里可以领取 Python 和人工智能学习资料,大家可以一起学习交流,效率更高,如果是想发推文、广告、砍价小程序的敬请绕道一定记得备注「交流学习」,我会尽快通过好友申请哦!通过好友后私聊我「学习资料」或者「进群」都可以。

扫码添加,备注:交流学习




往期推荐01

公众号所有文章汇总导航(2-10更新)

02

玩会这 15 款编程游戏,就算是入门了!

03

我用Python一键保存了半佛老师所有的骚气表情包


我就知道你“在看”bce79fbdfae562a0a1bd7fb48b5851a7.webp
浏览 11
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报