Having to switch constantly between group clusters,local machines, and supercomputers where I don't always have root permission to install things (which is important for some more heavyweight Python packages that uses Cython), porting python code that has a bunch of dependencies on external packages was a pain. My previous fear with anaconda is that it doesn't support as much packages as I want so I've been a big believer of pip (with the --user option). virtualenv, and building from source code. But after switching to anaconda, my life is much easier. In this article I will show you how to setup anaconda and also install external packages to build from source using anaconda.

First, we get the anaconda distribution from their website, then run the executable. There are some agreements that you have to read through, and make sure you don't overclick. Then after the installation, you refer to the version of anaconda python by its path, this points to the anaconda python and not whatever default python you have installed in your system.

wget https://3230d63b5fc54e62148e-c95ac804525aac4b6dba79b00b39d1d3.ssl.cf1.rackcdn.com/Anaconda-2.3.0-Linux-x86_64.sh
bash Anaconda-2.3.0-Linux-x86_64.sh –b –p $HOME/anaconda
$HOME/anaconda/bin/conda install yt
Since this is the version of python that you will be working with mostly it is useful to set an alias to this executable. On some systems, it is okay to overwrite the variable "python" as an alias but it's probably easier to just define another alias in your .bashrc file:
alias apy="$HOME/anaconda/bin/python"
			
While you're at it, the alias for conda could also be setup:
alias conda="$HOME/anaconda/bin/conda"
			

While most anaconda supports a full list of common python packages ( full list here), there are sometimes packages that can not be installed using conda. The easiest way to install these packages is to git pull the source from Github or Mercurial, then run the setup.py using the anaconda version of python. Then the setuptools will automatically link the packages and the associated egg files to the anaconda site-packages and not the defaul one (most likely in your usr/bin). If you are doing this on a supercomputer or clusters that have the "module" functionality, make sure you do "module unload python" before you do this, so that your $PYTHONPATH is set correctly to point only at your anaconda distribution.

Just as an example, let's say I wanted to install the python package "thingking"

hg clone https://bitbucket.org/zeropy/thingking
				
cd thingking
apy setup.py install
Alternatively, if you didn't setup the alias in the previous step, you could simply refer to the anaconda python using the direct path:
/home/anaconda/bin/python setup.py install