OtherPackages
CASA ships with a few third part packages (NumPy, SciPy, Matplotlib). It can be very useful to upgrade these or add additional packages. The method to do this can vary from package to package and OS to OS, but many of these packages use the same "distutils" approach and we can summarize a general path.
The Basic Idea
The process of installing a third party package usually has two steps:
- Building the package using the appropriate version of python for CASA.
- Making sure the package is in a path visible inside CASA so that it can be imported.
The biggest complication is that CASA ships with its own version of python. In order to use a package inside CASA you need to be sure to build that package using this version of python, which may differ from other versions on your system. Another complication, which is usually more minor, is that (depending on permissions) you may need to add the locale of the built package to your path inside CASA.
Calling setup.py
Generally, once you identify the correct python version to use, you will
- Download the buildable version of package in question (usually a ".tar.gz" file).
- Untar and unzip it into a working directory and change directory to that directory.
In that directory you will see a script called "setup.py". You will build the package by calling a variation on
python setup.py install
from the shell.
Your init.py File
On the Macintosh
You are in huge luck. Most astronomers can administrate their own Mac and the location of CASA is standardized from Mac to Mac. This allowed Tom Robitaille to write a simple script that makes installing third party packages extremely simple. The script lives here:
https://github.com/astrofrog/casa-python
and it gives you access
As noted in the docs, this script assumes that CASA is still using Python 2.6. That will need to be upgraded.
Complications
You knew it wasn't always going to be that easy. Some of these packages, specifically the ultra-important SciPy, require a fortran compiler and Mac OS doesn't (at least at the moment) ship with one.