conda——跨平台的包和环境管理器
很多小伙伴在学习使用 python 进行数据科学工作的时候,可能会遇到一些工具冲突的情况。这个时候单独使用 pip 就不能较好的解决包冲突的问题了。接下来小编要介绍的这个工具,是一个独立于 python 之外的包管理工具,他就是 conda。
许多人认为conda和pip功能几乎完全相同,所以使用pip就足够了。但实际上它们的用途其实是不同的。pip的主要用途是从python的pypi上下载安装包,并进行包的管理工具,管理对象是python的第三方库;而conda的作用不仅仅是对第三方库进行管理,它还可以管理编译器。所以pip只是包管理器,而conda是包和环境管理器。此外,他们安装的文件也有所不同,pip安装打包为wheels或源代码分发的python软件,而conda可以安装包含用任何语言编写的软件的包,也就是说,conda包不仅仅只限于python软件,也有可能包含C或C++库,R语言包或者其他软件。
conda与pip的另外一大区别就是,conda可以创建包含不同版本的python或者其他软件包的隔离环境,比如python3.6版本和python2.7版本。这对使用数据科学工具相当有用,因为有些数据科学工具对python版本有所要求,不同的工具要求不同则会产生冲突,这样就不能将他们安装到单个环境中。使用pip只能依赖python虚拟化工具来创建隔离环境,并不能将多个要求不同版本python的软件包安装到一起。
最后conda和pip还有一大区别就是它们对于依赖的管理。pip的依赖管理不会确保同时满足所有包的依赖性,如果较早安装的软件包和稍后安装的软件包具有不兼容的依赖性版本,则有可能破坏环境。而使用conda会确保环境中安装的所有包的所有要求。
因为conda与pip具有不同的功能,所以有些人就会选择将这些工具结合起来。因为有些包只能用pip进行安装,而conda提供了最流行的数据科学、机器学习和al框架,在使用conda进行包管理的时候,如果遇到没有conda包但在pypi上有的情况,就可以使用pip进行解决。
以上关于conda介绍就到这里,更多conda的使用教程,敬请关注W3C技术头条的后续文章。