[AstroPy] Deployment and packaging

Tom Aldcroft aldcroft at head.cfa.harvard.edu
Tue Jun 14 20:43:56 EDT 2011

In the extensive recent discussions there has been only slight mention
of the problems in package deployment and the related issue of
multiple Python installations.  It's common practice now for large
tool packages like CIAO, CASA, STSci_Python etc to provide binary
installs which include Python, the relevant tools and other package
dependencies.  These sit next to other installations like the native
Python, EPD, Mac ports or Mac homebrew, SciSoft, etc. This is an
annoyance for developer types but can be a showstopper for astronomers
who wonder why the script they got from their collaborator won't run.
I recently heard someone state that she purposely avoids using 3rd
party astro packages so that her code will run on different
installations.  Given the current situation this is an unfortunate but
understandable strategy.

To that end I've added a new topic "Packaging and Deployment" to the
AstroPy developers wiki.  Like many other topics this is not easy, but
I invite comments now and participation in future discussions.  The
list below starts with basic ideas for yet another Python
distribution, and ends with the two hard parts:

- Base Python binary installation with NumPy, SciPy, matplotlib
- Optional full install that includes "everything", ala EPD
- Support for linux x86, x86_64, MacOS 10.5+ (with Windows at a lower priority)
- Non-root, movable, installation which is contained in a single directory
- Package management tools to upgrade some / all packages to latest on PyPI
- IMPORTANT: buy-in from developers to distribute "pip installable"
packages on PyPI
- IMPORTANT: buy-in from developers of large tool packages to use this
distribution instead of rolling their own.

Apart from the last two (important) points, everything in the list is
already exists in one form or another, e.g. sage, ActivePython, and
probably James Turner's distribution-in-work.  Sage is really bloated
and I much prefer ActivePython (which is of course a commercial
product and therefore not entirely suitable to this purpose).

Getting everything on PyPI should not be too difficult, but getting
large tool packages to use a new distribution will likely be a
difficult and multi-year effort.

- Tom

More information about the AstroPy mailing list