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

VanL van.lindberg at gmail.com
Wed Mar 14 16:48:58 CET 2012


On 3/14/2012 9:53 AM, Jim J. Jewett wrote:

In view-source:http://mail.python.org/pipermail/python-dev/2012-March/117586.html van.lindberg at gmail.com posted:

1) The layout for the python root directory for all platforms should be as follows: stdlib = {base/userbase}/lib/python{pyversionshort} platstdlib = {base/userbase}/lib/python{pyversionshort} purelib = {base/userbase}/lib/python{pyversionshort}/site-packages platlib = {base/userbase}/lib/python{pyversionshort}/site-packages include = {base/userbase}/include/python{pyversionshort} scripts = {base/userbase}/bin data = {base/userbase} Why? Pure python vs compiled C doesn't need to be separated at the directory level, except for cleanliness.

I am deliberately being cautious here. I actually agree with you. I am only suggesting we maintain all of these different distinctions because that is what we have already.

You can see what we have currently at http://hg.python.org/distutils2/file/2cec52b682a9/distutils2/_backport/sysconfig.cfg

I am not suggesting that docs, etc change at all - that is included in a different part of the configuration and is not modified by what I propose here (lines 1-26).

As noted earlier in the thread, I also change my proposal to maintain the existing differences between system installs and user installs.

Thus, the only place I am proposing changing are the values for the keys listed above. Specifically, this (lines 57-65 in the file above):

[nt] stdlib = {base}/Lib platstdlib = {base}/Lib purelib = {base}/Lib/site-packages platlib = {base}/Lib/site-packages include = {base}/Include platinclude = {base}/Include scripts = {base}/Scripts data = {base}

Would become this:

[nt] stdlib = {base}/lib platstdlib = {base}/lib purelib = {base}/lib/site-packages platlib = {base}/lib/site-packages include = {base}/include platinclude = {base}/include scripts = {base}/bin data = {base}

and this (lines 86-93):

[nt_user] stdlib = {userbase}/Python{py_version_nodot} platstdlib = {userbase}/Python{py_version_nodot} purelib = {userbase}/Python{py_version_nodot}/site-packages platlib = {userbase}/Python{py_version_nodot}/site-packages include = {userbase}/Python{py_version_nodot}/Include scripts = {userbase}/Scripts data = {userbase}

would become this:

[nt_user] stdlib = {userbase}/python{py_version_short} platstdlib = {userbase}/python{py_version_short} purelib = {userbase}/python{py_version_nodot}/site-packages platlib = {userbase}/python{py_version_nodot}/site-packages include = {userbase}/python{py_version_nodot}/include scripts = {userbase}/bin data = {userbase}

... if you're rewriting that logic, you're just asking for bugs on a strange platform that you don't use.

I am not rewriting the logic - the logic is driven by these configuration values. And this is a platform I use, and that is why this drives me crazy!

Subdirectories are:

You forgot one:

C:\python32\Scripts Would change to C:\python32\bin. The python binary and scripts meant to be run direction (easy_install, etc) would all go in this directory.

C:\python32\DLLs Would not change.

C:\python32\Doc Would not change.

C:\python32\include Would be specified as lower case only - but otherwise would not change.

C:\python32\Lib Would be specified as lower case only - but otherwise would not change.

C:\python32\libs Would not change.

C:\python32\tcl Would not change.

C:\python32\Tools This proposal does not change this, although I do think that this could be eliminated or made into "examples".

Thanks, Van



More information about the Python-Dev mailing list