Upgrading a largish group of packages w/ distutils

skip at pobox.com skip at pobox.com
Thu May 31 10:13:27 EDT 2007


At work I need to upgrade numpy, scipy, ipython and matplotlib.  They need
to be done all at once.  All have distutils setups but the new versions and
the old versions are incompatible with one another as a group because
numpy's apis changed.  Ideally, I could just do something like

    cd ~/src
    cd numpy
    python setup.py install
    cd ../scipy
    python setup.py install
    cd ../matplotlib
    python setup.py install
    cd ../ipython
    python setup.py install

however, even if nothing goes awry it leaves me with a fair chunk of time
where the state of the collective system is inconsistent (new numpy, old
everything else).  I'm wondering...  Can I stage the installs to a different
directory tree like so:

    export PYTHONPATH=$HOME/local/lib/python-2.4/site-packages
    cd ~/src
    cd numpy
    python setup.py install --prefix=$PYTHONPATH
    cd ../scipy
    python setup.py install --prefix=$PYTHONPATH
    cd ../matplotlib
    python setup.py install --prefix=$PYTHONPATH
    cd ../ipython
    python setup.py install --prefix=$PYTHONPATH

That would get them all built as a cohesive set.  Then I'd repeat the
installs without PYTHONPATH:

    unset PYTHONPATH
    cd ~/src
    cd numpy
    python setup.py install 
    cd ../scipy
    python setup.py install 
    cd ../matplotlib
    python setup.py install 
    cd ../ipython
    python setup.py install 

Presumably the compilation (the time-consuming part) is all
location-independent, so the second time the build_ext part should be fast.

Can anyone comment on the feasibility of this approach?  I guess what I'm
wondering is what dependencies there are on the installation directory.

Thx,

Skip





More information about the Python-list mailing list