Anaconda vs. EPD Enthought vs. manual installation of Python [closed]
Asked Answered
Z

4

112

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?

Zircon answered 2/4, 2013 at 11:29 Comment(11)
Also look at Python(x,y). It has a similar target audience like Enthought Python, but it costs nothing. code.google.com/p/pythonxyZiska
I think it depends on the OS you are using. What is yours?Haim
@andrea-zonca - I use Windows XP at work. The bundles are of little use as I cannot manage updates through the corporate firewall. At home I use Windows 8 and have a virtual disk with Ubuntu 12.10. I don't think I would bother with a bundle on Ubuntu as it is well packaged in the repos.Zircon
One advantage of using Anaconda even on Ubuntu is that you can easily have a managed install as a non-root user. Or, you can have multiple environments with many versions of any package on the same system using the conda package manager which is at the heart of the Anaconda distribution.Handclap
Also FYI, Anaconda is completely free to everyone, academic and commercial. There are free-licenses available to academics of Continuum's add-ons which are a separate thing from Anaconda itself.Handclap
The problem with Academic version is that is only available to american academic, not in my country.Moat
@Moat - really? I have an academic version in Australia.Zircon
OK, I've contacted them and they have been nice and sent me a license. The problem is that they ask for a .edu academic email and we don't use it in my country (I think only USA, UK and Australia do). This is a very common problem with other discounts.Moat
@Moat : really? Although it stated that academic license is associated with a .edu email, but in my case, it's a university email (univ.fr). I still gave it a try, and it worked! I have my academic license.Vitellus
@TravisOliphant: you can install packages for non-root users with vanilla python, using pip install --user PACKAGE. About separate environments, you can use virtualenv. I don't see any advantage to use Anaconda on a non-Windows system.Collett
Here is some "facts": I tested some simple matrix computations (matrix dot products, inversions) using numpy in anaconda v.s. vanilla python 2.7. The vanilla interpreter uses only 1 thread of my laptop, which has 4 cores and 8 threads, while anaconda uses all 8 threads. So the speed is about 7 times faster in anaconda.Unloose
H
49

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.

Haim answered 15/4, 2013 at 17:28 Comment(6)
I'm looking at this same question now myself. You state Canopy includes more packages, does that mean it is not possible to install these other packages in anaconda? It seems silly to limit myself not knowing if 2 years down the road I need a certain package.Bearcat
hopefully in 2 years you'll update your OS or python installations...anyway yes, you can install every additional python package in whatever python distribution you choose. For python-only packages, this is very simple. For packages that embed C or C++ extensions (scientific packages usually) this is more difficult, specially under windows, so better think in advance.Haim
FWIW, Anaconda also includes Chaco and includes much more than just 20 packages: docs.continuum.io/anaconda/pkgs.html (Even more are available in the repo and not bundled with the installer.)Chivers
Also FWIW, Anaconda now has nice conda-meta/pkg* info on all 100-odd packages: requires, version ... (conda-requires summarizes all the requires.)Stimson
I've been trying to get python set up for data mining on my Mac. I still haven't cracked this nut, but the most disappointing part so far has been installing Enthought Canopy Express and then learning they charge $199 for access to scikit-learn and nltk.Herd
I always recommend against using Anaconda. If you're doing anything other than writing scripts for yourself, you really should install python directly. The vast majority of tutorials, packages, and code on the web assumes you have done this. When someone mentions they are using anaconda and are having install issues, the first, and best, answer is, uninstall Anaconda.Sallee
M
11

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.

Mccaslin answered 24/2, 2014 at 21:25 Comment(3)
Hey Rafael, have you looked at Anaconda lately? It's come a long way.Chivers
pythonxy download - it's not at the expected address which is just a parked domain at present.Pasta
Using ubuntu repository python/scipy etc... (installed with apt) is fine, but it's always a few versions behind, which can be a pain as it misses bug fixes and handy new features. I've usually perferred to install with pip and get the latest stable versions.Veal
M
4

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.

Mace answered 18/2, 2016 at 14:47 Comment(1)
This is actually a useful thing to know. Thanks!Maiga
S
-4

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.

Sisyphus answered 1/3, 2016 at 22:53 Comment(3)
At least my Jupyter Notebook still works with the Standard (free) Anaconda version. Could you elaborate where you got that information? At least on the official Anaconda homepage Jupyter is still listed.Pereira
This is factually untrue. Jupyter/IPython has always been available in free Anaconda. FWIW, Continuum Analytics (the maker of Anaconda) employs several Jupyter core developers.Chivers
Please fix your erroneous answer. The ipython website even tells you how to install using Anaconda: ipython.org/install.htmlAccordant

© 2022 - 2024 — McMap. All rights reserved.