ChatGPT解决这个技术问题 Extra ChatGPT

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

Closed. This question is opinion-based. It is not currently accepting answers. Want to improve this question? Update the question so it can be answered with facts and citations by editing this post. Closed 6 years ago. Improve this question

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?

Also look at Python(x,y). It has a similar target audience like Enthought Python, but it costs nothing. code.google.com/p/pythonxy
I think it depends on the OS you are using. What is yours?
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.
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.
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.

P
Peter Mortensen

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.


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.
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.
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.)
Also FWIW, Anaconda now has nice conda-meta/pkg* info on all 100-odd packages: requires, version ... (conda-requires summarizes all the requires.)
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.
P
PhilMacKay

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.


Hey Rafael, have you looked at Anaconda lately? It's come a long way.
pythonxy download - it's not at the expected address which is just a parked domain at present.
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.
D
Dologan

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.


This is actually a useful thing to know. Thanks!
P
Peter Mortensen

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.


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.
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.
Please fix your erroneous answer. The ipython website even tells you how to install using Anaconda: ipython.org/install.html