[Distutils] win32 default installation

Greg Ward gward@python.net
Sat Sep 9 21:21:04 2000


On 10 September 2000, Robin Becker said:
> In this case I fear the BDFL is inaccurate. zlib.pyd et al don't go into
> $base they go into $base/DLLs

because they are part of the standard library.  Standard library modules 
do not get installed to the same location as third-party, site-specific
modules on any Python platform.

> so if the BDFL were to start distributing
> newer versions of  zlib etc these would end up in the wrong location.

Correct.  I think this is (currently) more a problem for modules that
start out as not part of the standard library and maintain a life of
their own, but it could become a problem if bits of the standard library 
start to be maintained separately.

> I thing the powers that be have got it wrong for this instance. These
> singleton .pyd packages seem better off in DLLs to me anyway.

Not if they're third-party modules, they don't!  I agree that dumping
third-party modules right into <prefix> is, umm, bogus.  But that's the
way Python's sys.path is on Windows, so what are ya gonna do?

> Anyhow if I were to desire the .pyd to end up in $base/DLLs how do I
> make it do that under win32; must I mess with the defaults in my
> setup.py?

Try this:

  python setup.py install --install-platlib='$sys_prefix/DLLs'

Hmm, I wish I could remember why I thought "sys_prefix" was the right
name for that variable (instead of just "prefix").  Oh well.

Note that $sys_prefix is expanded by the Distutils "install" command, so
if you're using a shell that expands variables in the Unix way (say,
bash under Cygwin), you need the single quotes!

        Greg

PS. to the person who asked some time ago why I used the "$var" syntax
instead of "%(var)s": now do you buy it?  ;-)

-- 
Greg Ward                                      gward@python.net
http://starship.python.net/~gward/