[Nipy-devel] The end of nipy.io.imageformats

Gael Varoquaux gael.varoquaux@normalesup....
Wed Jan 19 16:01:18 CST 2011

On Wed, Jan 19, 2011 at 11:23:21AM -0800, Matthew Brett wrote:
> > Currently, I cannot push non advanced users to use nipy because they
> > cannot install it, unless I take on me to install it for them. It makes me
> > reluctant to depend on it or to push code in it.

> Why can't they install it?  What problems do they have?

 1. User does not know what a command line/terminal window is
 2. easy_install (or Python) is not on the path (happens often on
 3. easy_install, or the Python on the path, is not the one the user uses
    to run their code (happens on various systems, such as macs, with EPD on
    a system with Python, or in some configurations at Neurospin)
 4. They follow the 'easy_install' instruction and it fails because they
    are not root on the box and easy_install tries to write to /usr
 4.a They don't know what a PYTHONPATH is, what an environment variable
     is, so they have a hard time making an alternate Python installation
 5. They have mis-read the install instructions and don't understand why
    things don't work when they try to import (ie missing dependency)
 6. They already have an older version of the software installed and they
    don't understand from the error message that they are getting that
    they need a new one or they don't know that they need to use
    'easy_install -U' to force an update

I have probably forgotten many other seemingly minor issues.

1, 2, 3, and 4 don't seem to be arguments against adding a dependencies,
because if users can install other dependencies, why can't they install
one more. Currently, all the nipy dependencies are shipped in the major
distributions, so users don't have to worry about them. In addition, they
all have '.exe' installers, so they avoid problems 1, 2 and 3. 

More realistically, a counter argument to many of these problems is that
anyhow installing and building nipy itself requires a certain skill set.
However adding dependencies worsens the situation and more importantly
makes it impossible to have a one-click install, such as a '.exe'.

Finally, an important issue is the fact that users give up quickly. I do
this too: the more dependencies, the longer the installation
instructions, the less chances there are that I install software.

Sorry if I am being dense, but I feel that these problems are very much
real problems.


PS: Distributions such as Debian (and NeuroDebian) do solve beautifully
these problems, but they are not applicable in many cases. For instance
at Neurospin, most users are not administrator of their system and the
systems are homogeneous. Thus upgrading the systems more or less requires
upgrading ~300 boxes. We have been discussing and planning an upgrade for
something like 1 year: it is not something that we can take lightly.

More information about the Nipy-devel mailing list