[Python-Dev] setuptools in 2.5.

Phillip J. Eby pje at telecommunity.com
Fri Apr 21 01:43:25 CEST 2006


At 07:33 PM 4/20/2006 -0400, Barry Warsaw wrote:
>The only thing I'll add (other than put me in the "just make it work and
>tell me what to do" camp ;) is that I really want a simple way to say
>"do not install into the system Python, put everything over here and I
>will fiddle with my environment to make it work".
>
>I may be way out of date with the state of the art these days, but in
>the past, I've had a difficult time making this work for Mailman.  For
>example, at various times we've had to distribute our own email package
>and Asian codecs packages.  The only way I've gotten things to work is
>by specifying --install-lib --install-data and --install-purelib
>switches, which was pretty difficult (IIRC) to figure out.

I'm surprised you needed --install-purelib; it seems like install-lib 
should have been sufficient.

As for --install-data, just put your data in the packages and use Python 
2.4's ability to install package data, or one of the pre-existing distutils 
extensions that beat install_data over the head to make it install the data 
with the packages.


>Again, maybe there's an easy way to do this with modern distutils, but I
>just want to make sure this is a use case that's on the radar.

In the easy_install case, "easy_install -d wherever" puts everything (and I 
do mean *everything*, including scripts) under the 'wherever' 
directory.  If you want scripts to go someplace different, there's a 
separate option.  But if you don't specify these things, easy_install gets 
its defaults from those defined for  distutils, specifically the 
--install-lib and --install-scripts options of the "install" command.

However, easy_install will gripe if the "-d wherever" isn't in PYTHONPATH 
and isn't site-packages, and you aren't saying you don't need it to be 
importable.  If you promise to make sure the installed packages will be on 
sys.path when you want to import them, you use -m or --multi-version and 
easy_install will happily put the packages anywhere you like and leave it 
to you to get them on sys.path.



More information about the Python-Dev mailing list