Python information for CfA¶
These instructions apply to the Harvard/Smithsonian Center for Astrophysics.
Using Python the HEAD network¶
Using Python on the CF network¶
SciPy, matplotlib (and the rest) in CIAO on HEAD¶
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!