Skip to content
eteq edited this page Jul 26, 2011 · 1 revision

Please Note: This page keeps track of the various options with pros/cons for packaging python Astronomy modules. The common astronomy package discussed elsewhere should be installable in the standard Pythonic way, so the packaging discussion can be kept separate: it applies whether or not the common astronomy package sees the light of day. There is nothing to exclude multiple distribution channels for astronomy software (e.g. package managers, all-in-one), but at least we should agree on what these options are.

I've listed a few, but you can add more or remove some of these

QUESTION: Are we talking about "installing small packages on top of existing Python installations", or "installing Python itself, plus major packages like Numpy", or both?

Ans: both - any way to get Python set up with all basic packages and astronomy packages, whether existing or hypothetical (T.R.)

Manual installation

Description

python setup.py install easy_install pip install

Pros

  • simple, if it works
  • not connected to any particular python binary, so software available through this mechanism can also be included in any of the other distribution mechanisms listed on this page
  • least work - we can concentrate on Astronomy software, not packaging mechanisms
  • leave the meta-packaging work to distribution maintainers (they will do it quickly if we package it properly)
  • leave the external dependencies work to the package managers (yum, macports, apt-get,...) and do not bundle them

Cons

  • it can be hard for the user if we have external dependencies (but we can incorporate some of them into our software, much like pywcs has a complete copy of wcslib included).
  • can get tricky if using system python without root. --prefix, --user installs start to get messy and error prone. (perhaps astropy developer guidelines should include best coding practices to minimize these problems?)
  • Requires a lot of time on the part of the user/system adminstrator

Python.org packages

Description

Binary Python installation from http://www.python.org (e.g. dmg on mac) followed by installation of packages via binary distributions if possible (e.g. numpy, scipy, matplotlib), otherwise 'python setup.py install'/'easy_install'/'pip install'.

Pros

Cons

All-in-one binary package (like EPD, but with astronomy software - hypothetical)

Description

A simple "double click" installer that contains Python, AstroPy, other things we think are useful, and all dependencies. Alternatively this might include only Python and utilities which are generally useful for analytic professions so that it is not exclusive to astronomy. (Sort of a free, no restrictions EPD.)

Pros

  • Very simple for users
  • Root access not necessarily required
  • May facilitate Python adoption by new users

Cons

  • A lot of work for maintainers
  • Difficult to provide binaries for all systems
  • Potentially large installs
  • May conflict with other Python installations

Single install script (hypothetical)

Description

Operates like manual installation, but under a script's control (with user intervention when/if needed). The list of packages the script installs

Pros

  • All the pros of manual installation apply here.
  • Much easier to automate and much less time-consuming (if it works).
  • PyPI has a very straightforward programmatic remote-access API, so design the script shouldn't be too difficult for PyPI packages.

Cons

  • May result in more confusion by users than manual installation, because the script itself might be more opaque than manually installing/troubleshooting packages.
  • May require some thought as to how to make sure external dependencies are installed before the script is run.

Distribution via package managers (MacPorts, apt-get, yum, ...)

Description

We arrange for our various software packages to be included in existing operating system package managers. Users can then install astropy using whichever is appropriate for their platform.

Pros

  • Deals well with dependencies, especially difficult non-Python dependencies.
  • Already widely used by many users, especially on Linux.
  • Many packages already available this way.
  • Updating is straightforward
  • Security updates are taken care
  • Possibility to leave the packaging tasks to the distribution developers

Cons

  • require administrator privs, not available to many institutional users (Note: MacPorts can be installed without root privileges. Some Linux package managers do it as well)
  • not a reliable source of any particular version of a package unless we become direct contributers of the necessary packages
  • we need to maintain several different distributions of our software: one for macports, one for apt-get, one for Fink, one for ...
  • (Note that Macports doesn't really need a different distribution per se; a port file is just a text config file with instructions for downloading a source tar file and building it, so this is very easy to layer on top of any source distribution. RPM and deb do require actual distribution files.)

Enthought Python Distribution

Description

http://www.enthought.com/products/epd.php

Pros

  • Robust, well-tested, easy.
  • Available for Linux, Mac, and Windows.

Cons

  • Not free for non-academic users.

Enthought Python Distribution - Free Version

Description

http://www.enthought.com/products/epd_free.php A Python distribution provided for free by Enthought. It contains Python, Numpy, SciPy, ipython, matplotlib and some Enthought stuff. Also contains tools for installing packages from PyPI.

Pros

  • Robust, well-tested, easy.
  • Available for Linux, Mac, and Windows for free.

Cons

  • Today it is free... tomorrow?

ActivePython

Description

http://www.activestate.com/activepython

Pros

  • Works well, easy to use.
  • pypm repository includes most modules on PyPI plus core like NumPy, SciPy
  • Module build test results available through pypm repository
  • Nominally free "community edition". Redistribution rights unclear however.

Cons

  • Reliance on a commercial distribution could be problematic.

Scisoft

Description

Scisoft attempts to be an "all-in-one astronomy-related software" package, which happens to include a Python installation and numerous Python packages and modules. It has a huge set of astronomical software (IRAF, Midas; SAOImage, DS9, Skycat; SExtractor, TinyTim, etc., etc.) There are two versions: the official ESO Scisoft, which is meant for Fedora-based versions of Linux only; and an unofficial Mac OS X version ( http://web.mac.com/npirzkal/Scisoft/Scisoft.html) which is updated more frequently and doesn't appear to be synchronized very much with ESO's version(?)

Pros

  • Very extensive (lots of tools and packages)
  • Free

Cons

  • some people have had bad experiences with scisoft, and therefore do not care to consider anything that has scisoft involved
  • Two versions: the official Scisoft from ESO (which has Python 2.5.4 only, numpy 1.3, scipy 0.7.1, matplotlib 0.99), for Fedora-based Linux only; and the Mac OS X version (Python 2.6 only, numpy 1.5.1, matplotlib 1.0) -- so there are serious inconsistencies, and the Linux version is rather out-of-date in terms of Python (and there's nothing for Windows)
  • Scisoft 7.4 (the previous release) had an incomplete base Python installation (missing some of the main library modules); not clear if this is true of the current version (Scisoft 7.5)
  • Contains lots of things which are not Python tools.

Other?

Clone this wiki locally