These instructions apply to the Harvard/Smithsonian Center for Astrophysics.
First get into CIAO in the usual way:
source /soft/ciao/bin/ciao.csh # tcsh
. /soft/ciao/bin/ciao.sh # bash
Now set your local installation prefix to a directory of your choosing where you have write permission and make some directories:
set prefix=$HOME/ciaopy # tcsh
prefix=$HOME/ciaopy # bash
mkdir -p $prefix/bin
mkdir -p $prefix/build
mkdir -p $prefix/include
mkdir -p $prefix/lib
Set up a couple of paths. You’ll probably want to do something similar to this path setup in your shell startup file:
# tcsh
setenv PATH $prefix/bin:$PATH # tcsh
setenv PYTHONPATH $prefix/lib/python2.7/site-packages
# bash
export PATH=$prefix/bin:$PATH
export PYTHONPATH=$prefix/lib/python2.7/site-packages
mkdir -p $PYTHONPATH
Now copy binary versions of the numerical libraries that are needed by SciPy. These have only been verified to work on CentOS-5 on the HEAD network:
cd $prefix/lib
tar xf /proj/sot/ska/export/lapack_blas_atlas_x86-64.tar.gz
Now go to the build directory and untar the source distributions for the SciPy and distribute packages:
cd $prefix/build
tar xf /proj/sot/ska/pkgs/scipy-0.10.0.tar.gz
tar xf /proj/sot/ska/pkgs/distribute-0.6.19.tar.gz
First build and install distribute. This provides setuptools and easy_install. It turns out that in this exercise easy_install works better than pip because it provides a --prefix option that works.
cd $prefix/build/distribute-0.6.19
ciaorun python setup.py install --prefix=$prefix
Now set up the configuration file to build SciPy from source:
cd $prefix/build/scipy-0.10.0
rm -f site.cfg
echo "[DEFAULT]" > site.cfg
echo "library_dirs = ${prefix}/lib" >> site.cfg
echo "include_dirs = ${prefix}/include" >> site.cfg
echo "[lapack_opt]" >> site.cfg
echo "libraries = lapack, f77blas, cblas, atlas" >> site.cfg
echo "[fftw]" >> site.cfg
echo "libraries = fftw3" >> site.cfg
Start building and go get a coffee or read a paper for a little while, hopefully less than a half hour:
rm -f build.log install.log
ciaorun python setup.py build --fcompiler=gnu95 >& build.log
ciaorun python setup.py install --prefix=$prefix >& install.log
Inspect build.log and install.log for errors (e.g. grep -i error build.log). If this looks OK then change to a different directory and start up sherpa or chips:
cd $prefix/build
sherpa
Now within sherpa do:
import scipy
import scipy.linalg
print scipy.__version__
print scipy.linalg.eig([[1,2],[3,4]])
Now quit and install the rest:
ciaorun easy_install --verbose --prefix=$prefix matplotlib
ciaorun easy_install --verbose --prefix=$prefix asciitable
ciaorun easy_install --verbose --prefix=$prefix pywcs
ciaorun easy_install --verbose --prefix=$prefix pyfits
ciaorun easy_install --verbose --prefix=$prefix atpy
ciaorun easy_install --verbose --prefix=$prefix aplpy
ciaorun easy_install --verbose --prefix=$prefix nose
Once again fire up sherpa or chips and do:
import numpy as np
import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt
import asciitable
import pyfits
import pywcs
import atpy
import aplpy
print np.__version__
x = np.linspace(0, 20, 100)
plt.plot(x, np.sin(x))
Hopefully you are done and have a CIAO Python that you can use for all your analysis!