Once in a while, I install Python packages from source using distutils. The distutils-powered
setup.py script found in many packages installs software in
/usr/local/ – quite useful because it doesn’t interfere with packages managed by your distribution. Since Ubuntu Jaunty and Python 2.6, this doesn’t work anymore.
Previously, your usual command
python setup.py install installed packages in
/usr/local/lib/pythonX.Y/site-packages/, depending on your Python version. As of Ubuntu Jaunty, Python 2.6 no longer has this directory in
sys.path. Instead, it expects local packages in
/usr/local/lib/python2.6/dist-packages/, so your locally installed packages are no longer found.
I learned from this posting that distutils now supports an
--install-layout=deb switch that installs the package in
/usr/local/lib/python2.6/dist-packages. The switch is accepted in distutils from Python 2.4 and 2.5, too, without having any effect, so you can always include it in your command line.
To sum things up, the new command line for installing python packages in
python setup.py install --install-layout=deb
This probably applies to Debian systems as well, judging from the name choice of
--install-layout‘s parameter. I updated my posting on stow to reflect this change.