Anaconda vs. EPD Enthought vs.手动安装Python [关闭]


112

与手动安装相比,各种Python捆绑包(EPD / Anaconda)有哪些相对优点/缺点?

我已经安装了EPD Academic,但没有任何问题。它提供了我认为我将永远需要的更多软件包,并且使用enpkg enstaller进行更新非常容易。EPD学术许可证需要每年更新一次,而免费版本的更新并不那么容易。

目前,我实际上只使用了一些软件包,例如PandasNumPySciPymatplotlibIPythonStatsmodels及其各自的依赖项。

对于这种有限的使用,我最好手动安装,pip install --upgrade 'package'还是捆绑包提供了除此以外的其他功能?


2
还要看一下Python(x,y)。它具有与Enthought Python类似的目标受众,但是它不花任何钱。code.google.com/p/pythonxy
Eike

1
我认为这取决于您使用的操作系统。你是什​​么人
Andrea Zonca

5
即使在Ubuntu上使用Anaconda的一个优点是,您可以以非root用户身份轻松进行托管安装。或者,您可以使用位于Anaconda发行版核心的conda软件包管理器,在同一系统上拥有具有多个版本的任何软件包的多个环境。
Travis Oliphant 2013年

5
仅供参考,Anaconda对所有人(包括学术界和商业界)都是完全免费的。Continuum附加组件的学术人员可以获得免费许可证,这与Anaconda本身是分开的。
Travis Oliphant 2013年

1
这是一些“事实”:我在anaconda vs vanilla python 2.7中使用numpy测试了一些简单的矩阵计算(矩阵点乘积,求逆)。vanilla解释器仅使用我的笔记本电脑的1个线程,该线程具有4个内核和8个线程,而anaconda使用所有8个线程。因此,速度大约是anaconda的7倍。
杰森

Answers:


48

2015年更新:如今,我总是推荐水蟒。它包括许多用于科学计算,数据科学,Web开发等的Python程序包。它还提供了一个高级的环境工具conda,该工具可以轻松地在环境之间切换,甚至在Python 2和3之间切换。它也很快得到了更新。当发布新版本的软件包时,您可以conda update packagename进行更新。

以下为原始答案

在Windows上,复杂的是编译数学软件包,因此,我认为仅当您仅对Python而不是其他软件包感兴趣时,手动安装才是可行的选择。

因此最好选择EPD(现为Canopy)或Anaconda。

Anaconda大约有270个软件包,其中包括对于大多数科学应用程序和数据分析而言最重要的软件包,即NumPySciPyPandasIPythonmatplotlibScikit-learn。因此,如果这对您来说足够,我会选择Anaconda。

相反,如果您对其他软件包感兴趣,并且如果您使用任何Enthought软件包(例如Chaco对于实时数据可视化非常有用),则EPD / Canopy可能是一个更好的选择。学术版在基本安装中包含大量软件包,在存储库中包含更多软件包。Anaconda还包括Chaco。


1
我自己现在正在看这个相同的问题。您声明Canopy包含更多软件包,这是否意味着无法在anaconda中安装这些其他软件包?限制自己不知道两年后我是否需要某种套餐似乎很愚蠢。
多米尼克

3
希望在2年内更新操作系统或python安装...无论如何,您可以在选择的任何python发行版中安装每个其他python软件包。对于仅python的软件包,这非常简单。对于嵌入了C或C ++扩展的程序包(通常是科学程序包),这特别困难,尤其是在Windows下,因此最好事先考虑一下。
Andrea Zonca

13
在FWIW中,Anaconda还包含Chaco,并且包含的​​内容不止20个软件包:docs.continuum.io/anaconda/pkgs.html (甚至更多的可用在仓库中,但未与安装程序捆绑在一起。)
Peter Wang

3
同样是FWIW,Anaconda现在在所有100多种软件包中都提供了不错的conda-meta / pkg *信息:需求,版本...(conda-requires汇总了所有需求。)
denis

3
我一直在尝试为Mac上的数据挖掘设置python。我仍然没有松懈,但到目前为止,最令人失望的部分是安装了Enthought Canopy Express,然后得知他们收取199美元的scikit-learn和nltk费用。
2013年

11

去年,我尝试了各种Windows发行版,试图为我的工作环境找到一个合适的版本(在代理之后,但无法访问代理配置)。

这是我的经验反馈:

EPD / Canopy: 我们拥有EPD许可证,但是它很旧,并且由于代理服务器情况怪异而无法更新。为了添加一些软件包(例如xlrd / xlwt的最新版本),我从源代码进行了编译。要更新SciPyNumPy,我使用了http://www.lfd.uci.edu/~gohlke/pythonlibs/中的预编译安装程序,但有时会破坏兼容性。我喜欢拥有完全配置的Py2exeCython,它开箱即用。

过了一会儿,我尝试安装Canopy的免费版本,但是它缺少Cython和py2exe以及一些我需要的特定高级软件包,因此我从未真正使用过它。我的一些同事购买了完整的Canopy许可证,但是我们仍然不确定他们将如何更新...

Python(x,y): 不想在许可证上挣扎,我在家安装了Python(x,y)。我现在注意到的唯一缺点是标准安装要求您选择所需的软件包。这既有好处也有坏处,因为我不确定我的客户端将具有与安装时完全相同的配置。(可以在Python(x,y)中安装Enthought工具套件。)使用Python(x,y)一段时间后,我只是注意到我安装了32位版本。尽管在他们的网站上不清楚,但截至2015年7月,他们似乎还没有64位版本。我打算将其卸载并获得64位版本。

Anaconda: 当我第一次写这篇文章时,Anaconda似乎还没有足够的软件包。几年后,它似乎好多了,我将尝试一下!

手册: 为了避免与我们的旧EPD版本存在版本兼容性问题,我最终使用了手动安装Python,并从上面链接的LFD网站添加了其他软件包。效果很好,但我仍然向需要高级软件包(例如GDALPyFITS)的新用户建议Canopy 。

摘要:如果您要购买Canopy,请获取完整的许可证(学术版或购买的)。否则,使用Python(x,y),结果将相同。

在Ubuntu上: 不需要分发。这些都是相对较新的(可以容忍+/- 6个月)并已预编译。您只需要执行sudo apt-get install python python-scipy就可以了!也有最高级的软件包。


嘿拉斐尔,您最近看过蟒蛇吗?它已经走了很长一段路。
彼得·王

pythonxy下载 -它不在预期的地址,目前只是托管域名。
pbhj 2014年

使用ubuntu信息库python / scipy等...(与apt一起安装)很好,但是总是落后几个版本,由于错过了错误修复和方便的新功能,因此可能很痛苦。我通常希望使用pip进行安装并获得最新的稳定版本。
drevicko '16

4

其他答案很好地覆盖了地面,因此我只想谈谈一个尚未提及的特定方面。它可能是相当利基的,但是对于Linux系统下的某些人来说,它可能会制造或破坏Anaconda或Canopy:

Anaconda Python版本使用UCS4 Unicode模式,而Enthought Canopy使用UCS2。

实际上,这意味着如果您依赖任何因某种原因而无法自行编译的扩展(例如,预编译的专有库),并且如果它们不是为使用相同模式的Python版本构建的,则可能会更快或以后遇到类似于的错误undefined symbol: PyUnicodeUCS4_AsUTF8String

根据PEP 0513,UCS4当前似乎更为流行和推荐。同样,整个UCS兼容性问题似乎仅影响2.x和<3.3版本。


这实际上是一件有用的事情。谢谢!
pysolver '16

-4

我使用Anaconda已有多年,并且非常喜欢它。不幸的是,如果没有企业版,则无法使用IPython Notebook(现在为Jupyter)。

我想在教室里使用Jupyter笔记本,所以我改用Canopy。安装我们需要的所有软件包似乎很容易。诚然,我们还没有对它们全部进行测试。


1
至少我的Jupyter Notebook仍可使用Standard(免费)Anaconda版本。您能详细说明从何处获得该信息吗?至少在Anaconda官方主页上仍列出了Jupyter。
MSeifert

2
这实际上是不正确的。Jupyter / IPython一直可以在免费的Anaconda中获得。FWIW,Continuum Analytics(Anaconda的制造商)聘用了Jupyter的几个核心开发人员。
彼得·王

请修正您的错误答案。ipython网站甚至告诉您如何使用Anaconda进行安装:ipython.org/install.html
Bradley Kreider
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.