This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: Windows default installation path is inconsistent between per-user and system-wide installation
Type: behavior Stage: resolved
Components: Installation, Windows Versions: Python 3.5
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: Nosy List: chrullrich, eryksun, paul.moore, python-dev, steve.dower, tim.golden, zach.ware
Priority: normal Keywords:

Created on 2015-09-18 08:21 by chrullrich, last changed 2022-04-11 14:58 by admin. This issue is now closed.

Messages (7)
msg250956 - (view) Author: Christian Ullrich (chrullrich) * Date: 2015-09-18 08:21
On Windows, a per-user installation uses %LOCALAPPDATA%\Programs\Python\Python35 as the default target directory. A system-wide (InstallAllUsers=1) installation, however, goes into "%PROGRAMFILES%\Python 3.5" instead. The two directory names should be consistent with each other (and with earlier versions), that is, should be "Python35" in all cases.
msg251382 - (view) Author: Steve Dower (steve.dower) * (Python committer) Date: 2015-09-23 01:15
Might be too much of a breaking change for 3.5.1 - what do the other Windows guys think about making them both "Python 3.5" (or "Python 3.5-32" in the per-user case, to avoid conflicting with a 64-bit install)?
msg251443 - (view) Author: Tim Golden (tim.golden) * (Python committer) Date: 2015-09-23 20:02
I don't feel that strongly, but my preference would be 
"python35[-whatever]" rather than the version with the spaces & the 
dots. Both for ease of use and for some kind of continuity with the 
c:\pythonxy we've had for many years.
msg251474 - (view) Author: Eryk Sun (eryksun) * (Python triager) Date: 2015-09-24 00:42
Also, why does the per-user install path have a seemingly pointless "Python" base directory? I expected it to install directly into FOLDERID_UserProgramFiles, to be consistent with installing to FOLDERID_ProgramFiles.

Also, I doubt anyone cares, but the roaming "user scheme" is still using the name "Python35" without appending a -32 suffix. So 32-bit and 64-bit --user installs are still competing for the same site-packages directory. I know, hardly anyone seems to use this. I doubt Jane User wants large packages such as PyQt4 and SciPy in her roaming profile.
msg251478 - (view) Author: Steve Dower (steve.dower) * (Python committer) Date: 2015-09-24 02:21
Good question on the extra "Python" directory - I don't recall exactly why that was there, but I suspect it was for consistency with something - probably {userbase} from sysconfig.

Also, thanks for catching the user scheme difference. We shouldn't really be installing any packages into the Roaming profile at all, but as this is a highly underused feature it's not a big deal. (And since we add platform tags to .pyd files now it can actually be used successfully, but I suspect that involves more care.)
msg253012 - (view) Author: Roundup Robot (python-dev) (Python triager) Date: 2015-10-14 17:42
New changeset be92f6ce1e80 by Steve Dower in branch '3.5':
Issue #25164: Changes default all-users install directory to match per-user directory.
https://hg.python.org/cpython/rev/be92f6ce1e80
msg253013 - (view) Author: Steve Dower (steve.dower) * (Python committer) Date: 2015-10-14 17:46
I don't think it will be a significant breaking change at this stage to update the default all-user install directory, since everyone *should* be resolving it through the registry keys or overriding it on installation. Upgrading from 3.5.0 will not change to the new directory, so it only affects new installs.

The change is that the directory is named "Python35" or "Python35-32" under either %ProgramFiles% or %LocalAppData%\Programs\Python. (This is not a change in the latter case.)
History
Date User Action Args
2022-04-11 14:58:21adminsetgithub: 69351
2015-10-14 22:17:32steve.dowersetstatus: open -> closed
resolution: fixed
stage: resolved
2015-10-14 17:46:40steve.dowersetmessages: + msg253013
2015-10-14 17:42:12python-devsetnosy: + python-dev
messages: + msg253012
2015-09-24 02:21:48steve.dowersetmessages: + msg251478
2015-09-24 00:42:13eryksunsetnosy: + eryksun
messages: + msg251474
2015-09-23 20:02:42tim.goldensetmessages: + msg251443
2015-09-23 01:15:33steve.dowersetmessages: + msg251382
2015-09-18 08:21:22chrullrichcreate