详解conda与pip的区别(翻译自Understanding Conda and Pip)

详解conda与pip的区别 (翻译自Understanding Conda and Pip)

原文传送门

Understanding Conda and Pip

一句话概括

pip可以允许你在任何环境中安装python包,而conda允许你在conda环境中安装任何语言包(包括c语言或者python)。

condapip
包的形式二进制whl or source
需要编译器
包的种类任意语言只有Python
创建虚拟环境能(内置功能)自己不能,需借助其他工具
依赖检查(详细请见下文)
包源Anaconda仓库和Anaconda云Pypi

翻译

简介

conda和pip通常被认为是几乎相同的。 尽管这两个工具的某些功能有重叠,但是它们是为不同的目的而设计的。 Pip是Python Packaging Authority推荐的工具,可用于从PyPI安装包。 Pip可以安装被打包为whl或source distributions(源代码发行包)的Python软件。 在用pip安装source distributions之前,电脑里需要有安装好的兼容编译器以及一些要用的库。

包的区别

Conda是一个跨平台的包和环境管理器,可以安装和管理 Anaconda repository以及Anaconda Cloud中的cond件包。 Conda包是二进制文件,不需要安装任何编译器。 另外,conda包不限于Python软件。 它们可能还包含C或C ++库,R软件包或任何其他软件。

这凸显了conda和pip之间的关键区别。 Pip安装Python包,而conda安装任何语言的包, 比如,在使用pip之前,必须预先装好Python解释器。 但Conda可以直接安装Python软件包以及Python解释器。

虚拟环境区别

另一个主要区别是conda能够创建隔离的环境,该环境可以包含不同版本的Python和/或其中安装的包。 当使用数据科学工具时,这可能非常有用,因为不同的工具可能包含冲突的要求,这可能会阻止将它们全部安装到单个环境中。 Pip没有对环境的内置支持,而是依赖于诸如virtualenv或venv的外部工具来创建隔离的环境。 Pipenvpoetryhatch之类的工具对pip和虚拟环境进行了包装/。

依赖的区别

pip和conda在满足环境中的依赖关系方面也有所不同。 在安装包时,pip在递归的串行循环中安装依赖项。 不会保证同时满足所有包的依赖关系**(意思就是pip只关心新安装的包所牵扯的包)**。 如果安装较早的包与安装较晚的包依赖不同,则可能导致环境以微妙的方式被破坏。
相反,conda使用可满足性(SAT)求解器来验证是否满足环境中安装的所有软件包的所有要求。 这项检查可能需要花费更多时间,但有助于防止环境被破坏。 只要依赖包的元数据正确,conda就不会出错。

总结

鉴于conda和pip之间的相似之处,有人尝试将这些工具组合在一起以创建数据科学环境就不足为奇了。 将pip与conda结合的主要原因是,有时一个或多个软件包只能通过pip安装。 Anaconda存储库中提供了1,500多个软件包,其中包括最受欢迎的数据科学,机器学习和AI框架。这些包,以及Anaconda云上提供的数千种其他软件包,包括conda-forge和bioconda, 都可以使用conda来安装。 尽管有大量的软件包,但与PyPI上可用的150,000多个软件包相比,conda就是小巫见大巫了。 有时需要一个软件包,conda里没有,但PyPI里有,我们就可以用pip来安装。 在这些情况下,同时使用conda和pip是有意义的。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值