You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.)
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.
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.