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

Lindberg, Van Van.Lindberg at haynesboone.com
Wed Mar 14 17:03:54 CET 2012


On 3/14/2012 1:32 AM, Mark Hammond wrote:
> As per comments later in the thread, I'm -1 on including
> "python{py_version_short}" in the lib directories for a number of
> reasons; one further reason not outlined is that it would potentially
> make running Python directly from a built tree difficult. For the same
> reason, I'm also -1 on having that in the include dir.

A built tree would look the same as always - the directories would only 
be moved (if at all) during installation. Thus, you will still be able 
to run python directly from a built installation.

Also note that the py_version_short will not be in platform installs.


>> scripts = {base/userbase}/bin
>
> We should note that this may cause pain for a number of projects - I've
> seen quite a few projects that already assume "Scripts" on Windows - eg,
> virtualenv and setuptools IIRC

If you look at these projects, though, they *special case* Windows to 
account for the different layout. Removing this difference will allow 
these projects to remove their special-casing code.


>- and also assume the executable is where
> it currently lives - one example off the top of my head is the mozilla
> "jetpack" project - see:
>
> https://github.com/mozilla/addon-sdk/blob/master/bin/activate.bat#L117

This code actually reinforces my point:

First, this code would actually still work. The section ":FoundPython" 
sets the PATH to "%VIRTUAL_ENV%\bin;%PYTHONINSTALL%;%PATH%" (L80), which 
would still allow python.exe to be found and run.

Second, look at that line again. Mozilla actually has edited this code 
so that the jetpack uses a cross-platform "bin" convention, just as I am 
proposing.

Third, one element of this proposal is that there would be a key placed 
in the registry that points directly to the location of the python 
executable, making locating it trivial to locate programmatically on 
Windows.

Thanks,
Van

CIRCULAR 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