Chris Swierczewski's Website

Anaconda - A Neat EPD Alternative

May 20, 2013

Anaconda is a scientific Python distribution similar to the Enthought Python Distribution. Because of its ease and cleanliness of installation, pre-installed package list, and package manager with access to up-to-date software I've made it my preferred Python distribution.

Note, I still think that, when it comes to "pure math" research, Sage is the best choice. I'm just in more of an "applied math" position. Not to mention, my aim is to have the software that I'm currently developing play well in all major Python environments. The packages I use live in all three scientific Python environments so my problem, as a developer, is reduced to usability.

Edit: I just found out that EPD Free / Canopy no longer includes networkx by default!

Installation

I try really hard to keep a clean computing environment on my machine so I appreciate that Anaconda is contained entirely in a directory that I can put in the location of my chosing. After downloading a bash script from here you do the following:

[cswiercz@jude ~] bash ./Anaconda-1.5.1-MacOSX-x86_64.sh
...
(several prompts asking for installation location and 
 .bash_profile modification permission)
...
[cswiercz@jude ~] ls anaconda
LICENSE.txt  conda-meta/  envs/        lib/         python.app/
bin/         docs/        include/     pkgs/        share/
[cswiercz@jude ~] which python
/Users/cswiercz/anaconda/bin/python

The entire scientific Python environment is contained in this one directory, as opposed to being buried in some /Library/Frameworks/... directory. The only way my terminal environment is modified is in this one line in my ~/.bash_profile:

# added by Anaconda 1.5.1 installer
export PATH="/Users/cswiercz/anaconda/bin:$PATH"

Thoughts

To be clear, I think that a product like Canopy will serve many people well. In particular, I think the product will make a Python-centric scientific computing course much easier to conduct. The standalone application-like interface ensures that the students and lecturers will have a uniform environment in which to teach and learn, keeping all of those packages, the version management, etc. tucked away in the background. If I ever have an opportunity to teach such a Python-based course then I'll definitely consider Canopy as the choice tool.

But if I'm wearing my developer hat instead of my lecturer hat then I'd like an easy to manage, clean, and complete Python environment that I can poke around in that's not an absolute bear to get up and running on an Apple computer. Anaconda is currently my preferred solution to this problem.