[Python-Dev] Python install layout and the PATH on win32

Lindberg, Van Van.Lindberg at haynesboone.com
Fri Mar 16 16:17:18 CET 2012


On 3/16/2012 3:38 AM, Paul Moore wrote:
> On 16 March 2012 00:12, Carl Meyer<carl at oddbird.net>  wrote:
>> Changing the directory name is in fact a new and different (and much
>> more invasive) special case, because distutils et al install scripts
>> there, and that directory name is part of the distutils install scheme.
>> Installers don't care where the Python binary is located, so moving it
>> in with the other scripts has very little impact.

This is very interesting, as it seems to argue against Mark's point. If 
moving the Python binary is not an issue here, then would this change 
make it any more/less of an issue?

> 1. The incompatibilities between platforms is precisely the problem
> that sysconfig is designed to solve, isn't it? So tools in Python will
> either use sysconfig (and be correct regardless of layout) or should
> be encouraged to change to use sysconfig (so they are
> layout-independent).

Right. I want to change the default layout in sysconfig.cfg.

> 2. The differences in layout between a installed Python, uninstalled
> builds and virtualenvs, on the same platform, are more annoying in
> practice than any cross-platform differences (at least for me). But
> again, these are known issues that can be dealt with easily enough
> (trivially via sysconfig from within Python).

These differences are a major pain for me - and it doesn't make sense 
that they should need to be worked around each and every time.

> If I were "tidying up", I would consider renaming Scripts to "bin" on
> Windows, and putting the Python executables in there (so there's only
> one directory to add to PATH, and it uses the common name "bin" rather
> than a name that implies that it doesn't contain exes). But that
> offers no practical benefit...

This is not a "we should be consistent" argument - I know that would 
never fly. I do cross-platform dev all the time (develop on Windows and 
Mac, deploy on Linux) and so this bites me *every single time* I want to 
get a consistent layout between these three. That could be because I 
want my deployment environment to match my development environment(s), 
it could be because I need to introspect the layout to find some data, 
or because I want to check in an entire environment into source control.

This is not purely aesthetics - this is an issue I deal with all the time.

Thanks,
VanCIRCULAR 230 NOTICE: To ensure compliance with requirements imposed by 
U.S. Treasury Regulations, Haynes and Boone, LLP informs you that any 
U.S. tax advice contained in this communication (including any 
attachments) was not intended or written to be used, and cannot be 
used, for the purpose of (i) avoiding penalties under the Internal 
Revenue Code or (ii) promoting, marketing or recommending to another 
party any transaction or matter addressed herein.

CONFIDENTIALITY NOTICE: This electronic mail transmission is confidential, 
may be privileged and should be read or retained only by the intended 
recipient. If you have received this transmission in error, please 
immediately notify the sender and delete it from your system.



More information about the Python-Dev mailing list