-
-
Notifications
You must be signed in to change notification settings - Fork 31.7k
Windows default installation path is inconsistent between per-user and system-wide installation #69351
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
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. |
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)? |
I don't feel that strongly, but my preference would be |
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. |
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.) |
New changeset be92f6ce1e80 by Steve Dower in branch '3.5': |
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.) |
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
bugs.python.org fields:
The text was updated successfully, but these errors were encountered: