Pip 或者 conda的时候经常被混合使用,这两者也通常被认为是几乎相同的,尽管他们的很多功能是重叠的,但它们的设计和使用目的不同。所以这次参考官方的解释,来进行如下总结和归纳:附上官方解释:conda和pip的官方解释
下图为官方的解释图例,很形象,主要且关键的部分列以下三点:
1. Pip只能安装Python包,而conda则并不局限于python。
conda安装的包可能包含用任何语言编写的软件,如C或c++库、R包或任何其他软件。所以在使用pip之前,必须通过系统包管理器或下载并运行安装程序来安装Python解释器,它自身不具备直接安装python解释器的能力。而conda可以直接安装Python包和Python解释器。
2. Conda能独立创建虚拟环境,pip则需要依赖vitrualenv等来创建。
conda能够创建独立的环境,其中可以包含不同版本的Python和或者包。从而解决不同的需求冲突。pip没有内置对环境的支持,而是依赖于其他工具,如virtualenv或venv来创建独立的环境。
3. Conda能自动解决所有包的依赖关系,但pip不可。
pip只是在递归安装包,不能确保同时满足所有包的依赖关系。从而很容易导致安装包具有不兼容的依赖版本。但conda能够自动验证环境中安装的所有包的所有需求都得到满足。
【非官网补充】
4. 默认的远程仓库中包含的软件包的数量不同。
Anaconda 储库中提供了 1500 多个软件包,包括最流行的pytorch,tensorflow等深度学习框架。但pip的仓库里却有大约 150,000 个包。所以一般情况下,我们会将conda中默认的仓库替换为清华源,中科大源等。