我知道pip是python包的包管理器。但是,我在IPython的网站上看到了使用conda安装IPython的安装。
我可以用pip安装IPython吗?当我已经有pip时,为什么我要使用conda作为另一个python包管理器?
pip和conda的区别是什么?
我知道pip是python包的包管理器。但是,我在IPython的网站上看到了使用conda安装IPython的安装。
我可以用pip安装IPython吗?当我已经有pip时,为什么我要使用conda作为另一个python包管理器?
pip和conda的区别是什么?
当前回答
我可以用pip安装iPython吗?
当然,两者都有(第一个方法)
pip install ipython
(第三种方法,第二种是conda)
您可以从GitHub或PyPI手动下载IPython。安装一个 对于这些版本,解压它并从顶层运行以下命令 源目录使用终端: PIP安装。
都是官方推荐的安装方式。
当我已经有pip时,为什么我要使用conda作为另一个python包管理器?
正如这里所说:
如果您需要一个特定的包(可能只用于一个项目),或者需要与其他人共享该项目,那么conda似乎更合适。
Conda在(YMMV)中超过pip
使用非python工具的项目 与同事分享 版本切换 在具有不同库版本的项目之间切换
pip和conda的区别是什么?
每个人都广泛地回答了这个问题。
其他回答
我可以用pip安装iPython吗?
当然,两者都有(第一个方法)
pip install ipython
(第三种方法,第二种是conda)
您可以从GitHub或PyPI手动下载IPython。安装一个 对于这些版本,解压它并从顶层运行以下命令 源目录使用终端: PIP安装。
都是官方推荐的安装方式。
当我已经有pip时,为什么我要使用conda作为另一个python包管理器?
正如这里所说:
如果您需要一个特定的包(可能只用于一个项目),或者需要与其他人共享该项目,那么conda似乎更合适。
Conda在(YMMV)中超过pip
使用非python工具的项目 与同事分享 版本切换 在具有不同库版本的项目之间切换
pip和conda的区别是什么?
每个人都广泛地回答了这个问题。
引用Conda博客:
由于在python世界中工作了很长时间,我们都知道pip、easy_install和virtualenv,但是这些工具并不能满足我们所有的特定需求。主要的问题是它们关注Python,忽略了非Python库的依赖关系,如HDF5、MKL、LLVM等,这些库的源代码中没有setup.py,也没有将文件安装到Python的site-packages目录中。
因此,Conda是一个打包工具和安装程序,它的目标是比pip做的更多;处理Python包之外的库依赖项以及Python包本身。Conda还创建了一个虚拟环境,就像virtualenv一样。
因此,也许可以将Conda与Buildout进行比较,后者是另一个可以同时处理Python和非Python安装任务的工具。
因为Conda引入了一种新的打包格式,所以pip和Conda不能互换使用;pip无法安装Conda包格式。您可以同时使用这两个工具(通过使用conda install pip安装pip),但它们也不能互操作。
在写下这个答案后,Anaconda发表了一个关于理解Conda和Pip的新页面,这也与此相呼应:
这突出了conda和pip之间的一个关键区别。Pip安装Python包,而conda安装的包可能包含用任何语言编写的软件。例如,在使用pip之前,必须通过系统包管理器或下载并运行安装程序来安装Python解释器。另一方面,Conda可以直接安装Python包以及Python解释器。
再进一步
有时需要一个包,这个包不能作为conda包使用,但可以在PyPI上使用,并且可以用pip安装。在这些情况下,尝试同时使用conda和pip是有意义的。
WINDOWS用户
“标准”包装工具的情况最近有所改善:
截至2015年9月11日,pypi本身的车轮包装数量为48%(2015年5月为38%,2014年9月为24%), 最新的python 2.7.9版本现在支持开箱即用的wheel格式,
“标准”+“微调”包装工具的情况也在改善:
你可以在http://www.lfd.uci.edu/~gohlke/pythonlibs上找到几乎所有的科学软件包, mingwpy项目可能有一天会给Windows用户带来一个“编译”包,允许他们在需要的时候从源代码安装所有东西。
“Conda”包装对于它所服务的市场来说仍然更好,并强调了“标准”应该改进的地方。
(此外,在标准wheel系统和conda系统或buildout中的依赖规范multiple-effort不是很python化,如果所有这些打包“核心”技术可以通过某种PEP聚合在一起就好了)
I may have found one further difference of a minor nature. I have my python environments under /usr rather than /home or whatever. In order to install to it, I would have to use sudo install pip. For me, the undesired side effect of sudo install pip was slightly different than what are widely reported elsewhere: after doing so, I had to run python with sudo in order to import any of the sudo-installed packages. I gave up on that and eventually found I could use sudo conda to install packages to an environment under /usr which then imported normally without needing sudo permission for python. I even used sudo conda to fix a broken pip rather than using sudo pip uninstall pip or sudo pip --upgrade install pip.
要回答最初的问题, 对于安装包,PIP和Conda是完成相同任务的不同方式。两者都是安装包的标准应用程序。主要的区别是包文件的来源。
PIP/PyPI将有更多的“实验性”包,或者更新的、不太常见的包版本 Conda通常会有更完善的包或版本
一个重要的警告提示:如果使用两个源(pip和conda)在同一环境中安装包,以后可能会导致问题。
重建环境将更加困难 修复包不兼容性变得更加复杂
最佳实践是选择一个应用程序(PIP或Conda)来安装包,并使用该应用程序安装所需的任何包。 然而,仍然有许多例外或理由在conda环境中使用pip,反之亦然。 例如:
如果您需要的包只存在于一个包上,则 其他人没有。 您需要一个只在一个环境中可用的特定版本