[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/