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!