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

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

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

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

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

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

What are the relative merits / downsides of various Python bundles (EPD / Anaconda) vs. a manual install?

I have installed EPD academic, and I have no issues with it. It provides more packages that I think I will ever need, and it is very easy to update using enpkg enstaller. The EPD academic licence requires yearly renewal however and the free version does not do updates as easily.

At the moment I really only use a handful of packages such as Pandas, NumPy, SciPy, matplotlib, IPython, Statsmodels and their respective dependencies.

For such limited use am I better off with manual install and pip install --upgrade 'package' or do the bundles offer anything over and above this?


回答 0

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。

Update 2015: Nowadays I always recommend Anaconda. It includes lots of Python packages for scientific computing, data science, web development, etc. It also provides a superior environment tool, conda, which allows to easily switch between environments, even between Python 2 and 3. It is also updated very quickly as soon as a new version of a package is released, and you can just do conda update packagename to update it.

Original answer below:

On Windows, what is complicated is to compile the math packages, so I think a manual install is a viable option only if you are interested only in Python, without other packages.

Therefore better chose either EPD (now Canopy) or Anaconda.

Anaconda has around 270 packages, including the most important for most scientific applications and data analysis, that is, NumPy, SciPy, Pandas, IPython, matplotlib, Scikit-learn. So if this is enough for you, I would choose Anaconda.

Instead, if you are interested in other packages, and even more if you use any of the Enthought packages (Chaco for example is very useful for realtime data visualization), then EPD/Canopy is probably a better choice. The Academic version has a larger number of packages in the base install, and many more in the repository. Anaconda also includes Chaco.


回答 1

去年,我尝试了各种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就可以了!也有最高级的软件包。

I have tried various Windows distributions in the last year, trying to find one sutable for my work environment (behind a proxy, but without access to proxy configuration).

Here is my feedback from experience:

EPD/Canopy: We had a license of EPD, but it was old and we were unable to update becasue of the weird proxy situation. In order to add some packages (such as recent version of xlrd/xlwt), I compiled from source. To update SciPy and NumPy, I used the precompiled installer from http://www.lfd.uci.edu/~gohlke/pythonlibs/, but it would sometimes screw up compatibility. I loved having a fully configured Py2exe and Cython, and it simply worked out of the box.

After a while, I tried installing the free version of Canopy, but it lacks Cython and py2exe and some specific advanced packaged I needed, so I never really used it. Some of my colleagues bought the full Canopy license, but we’re still not sure how they’re going to update…

Python(x,y): Not wanting to struggle with licenses, I installed Python(x,y) at home. The only downside I noticed right now is that the standard installation requires you to select which packages you want. It’s both a good and a bad point, because I can’t be sure that my clients will have the exact same configuration as I do when I install. (The Enthought tool suite can be installed in Python(x,y).) After using Python(x,y) for a while, I just noticed I installed the 32 bit version. Although it is not clear on their website, it seems they don’t have a 64 bit version as of July 2015. I’m going to uninstall it and get a 64 bit distribution.

Anaconda: When I first wrote this, Anaconda didn’t seem to have enough packages yet. A couple of years later, it seems much better, I’m going to give it a try!

Manual: In order to avoid version compatibility issues with our old EPD version, I ended up using manual Python installation and adding additional packages from the LFD website linked above. It works great, but I would still suggest Canopy to a new user who requires advanced packages (like GDAL or PyFITS).

Summary: If you go for Canopy, get the full licence (Academic or purchased). Else, go with Python(x,y), it will end up being the same.

On Ubuntu: No need for a distribution. It’s all relatively recent (+/- 6 months is tolerable) and pre-compiled. You just need to execute sudo apt-get install python python-scipy and it’s there! Most advanced packages are there as well.


回答 2

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

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

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

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

The other answers cover the ground quite nicely, so I just want to remark on one particular aspect that nobody has mentioned yet. It is probably fairly niche, but it may potentially make or break Anaconda or Canopy for some people under Linux systems:

Anaconda Python builds use the UCS4 Unicode mode, whereas Enthought Canopy uses UCS2.

What this means in practical terms is that if you rely on any extensions which you cannot compile yourself for whatever reason (e.g. pre-compiled proprietary libraries), if they happen not to be built for a Python version with the same mode, you may sooner or later run into errors that look something like undefined symbol: PyUnicodeUCS4_AsUTF8String.

According to PEP 0513, UCS4 seems to currently be more popular and recommended. Also, the whole UCS compatibility issues seem to only affect 2.x and < 3.3 versions.


回答 3

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

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

I used Anaconda for years and liked it quite a bit. Unfortunately, IPython Notebook (now Jupyter) is unavailable without the enterprise edition.

I want to use Jupyter notebooks in the classroom, so I switched to Canopy. It seems easy enough to install all of the packages we need. Admittedly, we haven’t tested them all.