[Python-Dev] Python install layout and the PATH on win32 (original) (raw)

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{pyversionshort}" 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