A step-by-step installation guide to setup a scientific python environment based on Mac OS X and homebrew.
Needless to say: Make a backup (Timemachine)
First install homebrew.
Follow their instructions, then come back here.
If you don’t have a clean install, some of the following steps might need minor additional attention (like changing permissions
chgrp or overwriting existing files in the linking step with
brew link --overwrite package_that_failed. In this case i can only recommend a backup again).
In general: execute the following commands one line at a time and read the outputs! If you read some warnings about “keg-only” that’s fine, it just means that brew won’t “hide” your system’s stuff behind the stuff it installed itself so it doesn’t cause problems… brewed stuff will still use it.
# set up some taps and update brew brew tap homebrew/science # a lot of cool formulae for scientific tools brew tap homebrew/python # numpy, scipy brew update && brew upgrade # install a brewed python brew install python # install openblas (otherwise scipy's arpack tests will fail) brew install openblas # install PIL, imagemagick, graphviz and other # image generating stuff (qt is nice for viewing) brew install pillow imagemagick graphviz brew install cairo --without-x brew install py2cairo # this will ask you to download xquartz and install it brew install qt pyqt # install nose (unittests & doctests on steroids) pip install virtualenv nose # install numpy and scipy brew install numpy --with-openblas # bug in Accelerate framework < Mac OS X 10.9 brew install scipy --with-openblas # bug in Accelerate framework < Mac OS X 10.9 # test the scipy install brew test scipy # some cool python libs (if you don't know them, look them up) # time series stuff, natural language toolkit # generate plots, symbolic maths in python, fancy debugging output pip install pandas nltk matplotlib sympy q # ipython and notebook support brew install zmq pip install ipython[zmq,qtconsole,notebook,test] # html stuff (parsing) pip install html5lib cssselect pyquery lxml BeautifulSoup # webapps / apis (choose what you like) pip install Flask Django # semantic web stuff: rdf & sparql pip install rdflib SPARQLWrapper # picloud (easily run python scripts in the cloud) pip install cloud
Have fun 😉
(As always: If you think something is missing leave a comment.)
update 2014-02-25: updated tap samualjohn/python to homebrew/python, new version linked