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

Mark Hammond skippy.hammond at gmail.com
Tue Mar 20 23:09:38 CET 2012


On 21/03/2012 5:50 AM, Merlijn van Deen wrote:
> On 13 March 2012 20:43, VanL<van.lindberg at gmail.com>  wrote:
>> Following up on conversations at PyCon, I want to bring up one of my
>> personal hobby horses for change in 3.3: Fix install layout on Windows, with
>> a side order of making the PATH work better.
>
> As this is being considered an 'incompatible change' on the bug
> tracker item [1] in any case, I'd like to mention that this might also
> be a convenient moment to re-think the default install location. After
> all, software is supposed to be installed in %programfiles% on
> windows, not in c:\<program name>.
>
> I asked a question about this on IRC, to which the response was that
> there were two main reasons to install python in c:\pythonxy:
>
> 1 - issues due to spaces ('Program Files') or non-ascii characters in
> the path ('Fișiere Program' on a Romanian windows). These issues are
> supposed to be fixed by now (?).
> 2 - issues due to permissions - installing python / packages in
> %programfiles% may require administrator rights.

Apart from personal preference (ie, I prefer the status quo here), the 
second issue is a bit of a killer.  Even an administrator can not write 
to Program Files unless they are using an "elevated" process (ie, 
explicitly use "Run as Administrator" and confirm the prompt.

This means that any installer wanting to write .py files into the Python 
install must be elevated, and any Python process wanting to generate 
.pyc files must also be elevated.  So even if an installer does arrange 
elevation, unless that installer also compiles all .pyc and .pyo files 
at install time, Python would fail to generate the .pyc files on first 
use.  While Python will probably fail silently and still continue to 
work, it will have a significant performance impact.

Mark


More information about the Python-Dev mailing list