Install notes for Mac OS X (10.9)¶
These instructions assume you’re starting with a clean Mac OS X system,
which will need python3
and all scientific packages installed.
Mac OS X cookbook¶
#!bash
# Homebrew
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew update
brew doctor
# ** Fix any errors raised by brew doctor before proceeding **
# Prep system
brew install gcc
brew install swig
# Python 3
brew install python3
# Scientific packages for Python 3
brew tap homebrew/science
brew install suite-sparse
pip3 install nose
pip3 install numpy
pip3 install scipy
brew install libpng
brew install freetype
pip3 install matplotlib
# MPI
brew install openmpi
pip3 install mpi4py
# FFTW
brew install fftw --with-mpi
# HDF5
brew install hdf5
pip3 install h5py
# Dedalus
# ** Change to the directory where you want to keep the Dedalus repository **
brew install hg
hg clone https://bitbucket.org/dedalus-project/dedalus
cd dedalus
pip3 install -r requirements.txt
python3 setup.py build_ext --inplace
Detailed install notes for Mac OS X (10.9)¶
Preparing a Mac system¶
First, install Xcode from the App Store and seperately install the Xcode Command Line
Tools. To install the command line tools, open Xcode, go to
Preferences
, select the Downloads
tab and Components
. These
command line tools install make
and other requisite tools that are
no longer automatically included in Mac OS X (as of 10.8).
Next, you should install the Homebrew package manager for OS X. Run the following from the Terminal:
#!bash
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew update
brew doctor
Cleanup any problems identified by brew doctor
before proceeding.
To complete the scipy
install process, we’ll need gfortran
from gcc
and swig
, which you can install from Homebrew:
#!bash
brew install gcc
brew install swig
Scientific packages for Python3¶
Next install the numpy and scipy scientific packages. To adequately warn you before proceeding, properly installing numpy and scipy on a Mac can be a frustrating experience.
Start by proactively installing UMFPACK from suite-sparse, located in homebrew-science on https://github.com/Homebrew/homebrew-science. Failing to do this may lead to a series of perplexing UMFPACK errors during the scipy install.
#!bash
brew tap homebrew/science
brew install suite-sparse
Now use pip, the (the standard Python package management system, installed with
Python via Homebrew) to install nose
, numpy
, and scipy
in order:
#!bash
pip3 install nose
pip3 install numpy
pip3 install scipy
The scipy
install can fail in a number of surprising ways. Be
especially wary of custom settings to LDFLAGS
, CPPFLAGS
, etc.
within your shell; these may cause the gfortran
compile step to fail
spectacularly.
Also install matplotlib
, the main Python plotting library, along with its
dependencies, using Homebrew and pip:
#!bash
brew install libpng
brew install freetype
pip3 install matplotlib
Other libraries¶
Dedalus is parallelized using MPI, and we recommend using the Open MPI library on OS X. The Open MPI library and Python wrappers can be installed using Homebrew and pip:
#!bash
brew install openmpi
pip3 install mpi4py
Dedalus uses the FFTW library for transforms and parallelized transposes, and can be installed using Homebrew:
#!bash
brew install fftw --with-mpi
Dedalus uses HDF5 for data storage. The HDF5 library and Python wrappers can be installed using Homebrew and pip:
#!bash
brew install hdf5
pip3 install h5py
Installing the Dedalus package¶
Dedalus is managed using the Mercurial distributed version control system, and
hosted online though Bitbucket. Mercurial (referred to as hg
) can be
installed using homebrew, and can then be used to download the latest copy of
Dedalus (note: you should change to the directory where you want the put the
Dedalus repository):
#!bash
brew install hg
hg clone https://bitbucket.org/dedalus-project/dedalus
cd dedalus
A few other Python packages needed by Dedalus are listed in the
requirements.txt
file in the Dedalus repository, and can be installed using
pip:
#!bash
pip3 install -r requirements.txt
You then need to build Dedalus’s Cython extensions from within the repository
using the setup.py
script. This step should be perfomed whenever updates
are pulled from the main repository (but it is only strictly necessary when the
Cython extensions are modified).
#!bash
python3 setup.py build_ext --inplace
Finally, you need to add the Dedalus repository to the Python search path so
that the dedalus
package can be imported. To do this, add the following
to your ~/.bash_profile
, substituting in the path to the Dedalus repository
you cloned using Mercurial:
# Add Dedalus repository to Python search path
export PYTHONPATH=<PATH/TO/DEDALUS/REPOSITORY>:$PYTHONPATH