-
Notifications
You must be signed in to change notification settings - Fork 0
Distribution
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.)
python setup.py install easy_install pip install
- 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
- 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
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'.
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.)
- Very simple for users
- Root access not necessarily required
- May facilitate Python adoption by new users
- A lot of work for maintainers
- Difficult to provide binaries for all systems
- Potentially large installs
- May conflict with other Python installations
Operates like manual installation, but under a script's control (with user intervention when/if needed). The list of packages the script installs
- 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.
- 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.
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.
- 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
- 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.)
http://www.enthought.com/products/epd.php
- Robust, well-tested, easy.
- Available for Linux, Mac, and Windows.
- Not free for non-academic users.
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.
- Robust, well-tested, easy.
- Available for Linux, Mac, and Windows for free.
- Today it is free... tomorrow?
http://www.activestate.com/activepython
- 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.
- Reliance on a commercial distribution could be problematic.
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(?)
- Very extensive (lots of tools and packages)
- Free
- 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?