事实: Conda是一个包管理器;Anaconda才是一个python发行版。虽然conda是用Anaconda打包的, 但是它们两个的目标是完全不同的。
软件发行版是在系统上提前编译和配置好的软件包集合, 装好了后就可以直接用。包管理器是自动化软件安装,更新,卸载的一种工具。Conda,有命令”conda install”, “conda update”, “conda remove”, 所以很明显, conda是包管理器。
再来说说, Anaconda 和 Miniconda. Anaconda发行版会预装很多pydata生态圈里的软件,而Miniconda是最小的conda安装环境, 一个干净的conda环境。
但是,conda和Anaconda没有必然关系, 你可以不安装Anaconda的同时, 使用conda安装和管理软件。
事实:Conda是一个通用的包管理器,当初设计来管理任何语言的包。所以用来管理python包当然也是绰绰有余。
$ conda search –canonical | grep -v ‘py\d\d’
这句命令可以帮你找出不是 pip和virtualenv可以管理的python包,而conda可以管理
事实:Conda 和 pip 目标并不相同, 只有小部分子集有交集有竞争关系:比如python包的安装和环境隔离。
一句话就可以看出区别:
pip可以允许你在任何环境中安装python包,而conda允许你在conda环境中安装任何语言包(包括c语言或者python)。
如果我们只是关注python包安装,conda和pip也是为不同用户和不同目标定制的。如果你想在一个已有系统快速管理python包,那你应该选择pip,因为conda应该在conda环境中使用,而pip鼓励在任何环境中使用 。而如果,你想要让许多依赖库一起很好地工作(比如数据分析中的Numpy,scipy,Matplotlib等等)那你就应该使用conda,conda很好地整合了包之间的互相依赖。
事实:Conda作者多年来用python标准创造conda,只有在非常清晰合理的时候, 才使用其他工具。
你可能会问,我相信conda是遵循python标准的,但是它们为什么偏偏要撇开pip自己去造一套包管理器呢?为什么他们不直接去pip团队贡献想法呢?
事实上,一开始conda那伙人是想在pip社区贡献想法和代码的,但是像numpy,scipy这样对底层c库有复杂依赖的包管理需求,真的不多,所以社区不接受这样的不常有的需求。所以,他们只能自己去造conda包管理器了。
事实上:你可以在virtualenv环境下安装conda,但是最好用conda自己的环境工具,这样会和pip有更好的兼容性
你可以在virtualenv里面安装conda:
$ virtualenv test_conda$ source test_conda/bin/activate$ pip install conda$ conda install numpy也可以在conda中造虚拟环境:
$ conda create -n yourenvname python=x.x anaconda$ source activate yourenvname事实:wheels只是解决了conda试图克服的许多困难中的一个, conda二进制编排还是有很多wheels没有的优势
wheels和conda都解决了预编译的代码安装问题(不仅仅是源代码安装)。但是wheel没有conda的依赖处理能力,wheels只能跟踪python代码的依赖关系,conda可以跟踪很多c代码的依赖关系,这为许多用numpy和scipy做科学计算优化的科学家省了不少心。
Reality: conda (the package manager and build system) is 100% open-source, and Anaconda (the distribution) is nearly there as well.
Anaconda和conda都是standard BSD license开源标准。如果你还不放心,用pip install conda吧,这是完全开源的。
事实: 虽然conda默认渠道没有完全开源,但是有一个社区牵头的conda-forge,它会推动conda的包和发行版完全开源。
事实: conda没有和Continuum Analytics公司有很多牵扯;公司为社区免费提供支持服务,所有软件都有负责人,而不是公司全权负责。
事实: pip 和 conda 是为不同目的存在的,我们应该更加关注怎么同时用好这两个工具,而不是只用一个
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) | Powered by Discuz! X3.2 |