conda install 和 pip install的区别
目录
前言
conda和pip一般被认为是几乎相同的,但这两个工具虽然功能存在部分重叠,但其设计的目的是不同的。
一.范围不同
Anaconda是一个跨平台的软件包和环境管理器,不局限于Python,还可能包含C,C++等语言的库和包,可以理解为“conda安装软件包,而pip只负责安装Python软件包”。
二.使用条件不同
使用pip之前,必须提前安装好Python解释器,而conda则可以直接安装Python包和Python解释器。
三.对虚拟环境的管理能力不同
conda能够很容易低创建和管理虚拟环境,这些环境可以包含不同版本的Python和/或其中安装的包。这在使用数据科学工具时非常有用,因为不同的工具可能包含相互冲突的要求,这可能会阻止它们全部安装到单个环境中。
Pip没有对环境的内置支持,而是依赖于其他工具,如virtualenv或venv以创建隔离的环境。
Pip 和 conda 在如何实现环境中的依赖关系方面也有所不同。安装软件包时,pip 会在递归串行循环中安装依赖项。不努力确保同时满足所有包的依赖关系。如果顺序中较早安装的包相对于稍后在顺序中安装的包具有不兼容的依赖项版本,则这可能会导致环境以微妙的方式损坏。相反,conda 使用满足性 (SAT) 求解器来验证环境中安装的所有包的所有要求是否都得到满足。此检查可能需要额外的时间,但有助于防止创建损坏的环境。只要关于依赖关系的包元数据是正确的,conda就会以可预测的方式产生工作环境。
四.可使用包的数量不同
在实际使用中,往往将conda和pip一起使用。将 pip 与 conda 组合在一起的一个主要原因是,很多时候所需要安装的包只能通过pip 安装。Anaconda 存储库中提供了 1500 多个包,包括最流行的数据科学、机器学习和 AI 框架。这些,以及Anaconda云上提供的数千个其他软件包,可以使用 conda 进行安装。尽管有如此多的软件包,但与PyPI上提供的超过150000个软件包相比,它仍然很小。有时需要一个软件包,该软件包不作为conda软件包提供,但在PyPI上可用,并且可以使用pip安装。在这些情况下,尝试同时使用conda和pip是有意义的。
参考官方文档: