我知道pip
是python包的包管理器.但是,我看到IPython网站conda
上的安装用于安装IPython.
我可以pip
用来安装IPython吗?conda
我已经拥有了为什么要用作另一个python包管理器pip
?
pip
和之间有什么区别conda
?
引自Conda博客:
我们长期参与python世界,我们都知道pip,easy_install和virtualenv,但这些工具并不能满足我们所有的特定要求.主要问题是它们专注于Python,忽略了非Python库依赖项,如HDF5,MKL,LLVM等,它们的源代码中没有setup.py,也没有将文件安装到Python的站点中-packages目录.
所以Conda是一个包装工具和安装程序,旨在做更多的事情pip
; 处理Python包之外的库依赖项以及Python包本身.Conda还创建了一个虚拟环境virtualenv
.
因此,Conda应该与Buildout进行比较,这是另一个可以让你处理Python和非Python安装任务的工具.
因为Conda推出了一种新的包装形式,你不能pip
互换使用和Conda; pip
无法安装Conda包格式.您可以使用并排的两个工具侧(通过安装pip
带conda install pip
),但他们不具备互操作性无论是.
不要混淆你,但你也可以在你的conda环境中使用pip,它可以验证上面的一般与python特定的管理者评论.
conda install -n testenv pip source activate testenv pip <pip command>
您还可以将pip添加到任何环境的默认包中,以便每次都存在,这样您就不必遵循上面的代码段.
这是一个简短的纲要:
仅限Python包.
从源代码编译所有内容.编辑:pip现在安装二进制轮子,如果它们可用.
由核心Python社区祝福(即Python 3.4+包括自动提升pip的代码).
Python不可知论者.现有软件包的主要关注点是Python,实际上conda本身是用Python编写的,但你也可以为C库或R软件包或任何东西提供conda软件包.
安装二进制文件.有一个工具称为conda build
从源构建包,但conda install
它本身安装了已经构建的conda包中的东西.
外部.Conda是Anaconda的包管理器,它是由Continuum Analytics提供的Python发行版,但它也可以在Anaconda之外使用.您可以通过pip安装将它与现有的Python安装一起使用(尽管除非您有充分的理由使用现有安装,否则不建议这样做).
在这两种情况下:
用Python编写
开源(conda是BSD,pip是麻省理工学院)
conda的前两个要点实际上是什么使它比许多包装的pip更有利.由于pip是从源代码安装的,如果你无法编译源代码,安装它就会很痛苦(在Windows上尤其如此,但如果软件包有一些困难的C或FORTRAN库,它甚至可以在Linux上运行依赖).Conda从二进制安装,意味着有人(例如,Continuum)已经完成了编译包的艰苦工作,因此安装很容易.
如果您有兴趣构建自己的包,也会有一些差异.例如,pip建立在setuptools之上,而conda使用自己的格式,这有一些优点(比如静态,再次,Python不可知).
其他答案给出了详细的详细描述,但我想强调一些高级别的要点.
pip是一个包管理器,便于安装,升级和卸载python包.它也适用于虚拟python环境.
conda是任何软件(安装,升级和卸载)的软件包管理器.它也适用于虚拟系统环境.
conda设计的目标之一是促进用户所需的整个软件堆栈的包管理,其中一个或多个python版本可能只是一小部分.这包括低级库,如线性代数,编译器,如Windows上的mingw,编辑器,Hg和Git等版本控制工具,或其他需要分发和管理的工具.
对于版本管理,pip允许您在多个python环境之间切换和管理.
Conda允许您在多个通用环境之间切换和管理,其中多个其他内容可能因版本号而异,例如C库,编译器,测试套件或数据库引擎等.
Conda不是以Windows为中心的,但在Windows上,当需要安装和管理需要编译的复杂科学包时,它是目前可用的优秀解决方案.
当我想到在Windows上通过pip编译许多这些软件包失去了多少时间,或者pip install
在需要编译时调试失败的会话时,我想要哭泣.
最后,Continuum Analytics还托管(免费)binstar.org(现在称为anaconda.org),允许常规软件包开发人员创建自己的自定义(内置!)软件堆栈,其软件包用户可以从中conda install
获得.
对于WINDOWS用户
"标准"包装工具的情况最近有所改善:
在pypi本身,截至9月,现在有48%的车轮包装.2015年11月(2015年5月为38%,2014年9月为24%),
现在支持每个最新的python 2.7.9开箱即用的轮式格式,
"标准"+"调整"包装工具的情况也在改善:
你可以在http://www.lfd.uci.edu/~gohlke/pythonlibs找到几乎所有轮式的科学包装,
mingwpy项目可能会为Windows用户带来一天的"编译"包,允许在需要时从源安装所有内容.
"Conda"包装对其所服务的市场仍然更好,并突出了"标准" 应该改进的领域.
(此外,依赖规范多次努力,在标准轮系统和conda系统或buildout中,并不是非常pythonic,如果所有这些包装'核心'技术可以通过某种PEP汇聚,那将是很好的)
引自康达:神话和误解(综合描述):
...
现实:Conda和pip服务于不同的目的,并且只在一小部分任务中直接竞争:即在隔离环境中安装Python包.
Pip代表P ip I nstalls P ackages,是Python官方认可的软件包管理器,最常用于安装Python Package Index(PyPI)上发布的软件包.pip和PyPI都受Python Packaging Authority(PyPA)的支配和支持.
简而言之,pip是Python包的通用管理器; conda是一个与语言无关的跨平台环境管理器.对于用户来说,最显着的区别可能就是:pip在任何环境中安装python包; conda在conda环境中安装任何软件包.如果您所做的只是在隔离环境中安装Python包,那么conda和pip + virtualenv大多可以互换,模块化依赖性处理和包可用性方面的差异.隔离环境我指的是conda-env或virtualenv,您可以在其中安装包而无需修改系统Python安装.
即使放弃神话#2,如果我们只关注Python包的安装,conda和pip会为不同的受众和不同目的服务.如果你想在现有的系统Python安装中管理Python包,conda无法帮助你:按照设计,它只能在conda环境中安装包.如果您想要使用许多依赖于外部依赖项的Python包(NumPy,SciPy和Matplotlib是常见示例),在以有意义的方式跟踪这些依赖项时,pip无法帮助您:按设计,它管理Python包,只管理Python包.
Conda和pip不是竞争对手,而是专注于不同用户群和使用模式的工具.
引用Conda for Data Science的文章到连续统一网站:
康达vs pip
Python程序员可能熟悉pip从PyPI下载包并管理他们的要求.虽然conda和pip都是包管理器,但它们却截然不同:
Pip特定于Python包,conda与语言无关,这意味着我们可以使用conda来管理来自任何语言的包Pip从源代码编译并且conda安装二进制文件,消除了编译的负担
Conda本地创建与语言无关的环境,而pip依赖virtualenv来管理Python环境虽然建议始终使用conda包,但conda还包括pip,因此您不必在两者之间进行选择.例如,要安装一个没有conda包但通过pip可用的python包,只需运行,例如:
conda install pip pip install gensim