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 installer is unclear and has redundant settings
Type: Stage:
Components: Installation, Windows Versions: Python 3.11
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: buhtz, h30-04213, paul.moore, steve.dower, tim.golden, zach.ware
Priority: normal Keywords:

Created on 2022-02-23 08:22 by buhtz, last changed 2022-04-11 14:59 by admin.

Files
File name Uploaded Description Edit
python3_9_10_install_wizard_page1-3.png buhtz, 2022-02-23 08:22 Screenshot of all 3 installer wizart pages at once
py_installer.pdf buhtz, 2022-02-23 16:49 drafts of 4 variants of an alternative install wizard
Messages (6)
msg413777 - (view) Author: Christian Buhtz (buhtz) Date: 2022-02-23 08:22
Hello together,
this is is about the installer of Python 3.9.10 on Windows 10 64bit.

I have problems to interpret the installer wizard/dialog. And my argument is that no matter if there are good reasons for the current options some of the users are confused by it.

The goal should be to make the installer more clear about what this options do.

Lets see the "Install for all users" option:
 This appears on all three pages.
 I am not sure but would say that the first two options are related to the py-launcher not the the python interpreter itself. OK, but why two options?
 The third option is for the interpreter?
 And I do not see an advantage in making a difference between launcher and interpreter for that option.

Lets see about PATH/environment variables:
 This appears on the first page ("Add Python 3.9 to PATH") and on the third page ("Add Python to environment variables").
 I do not understand why.

And all this options are not synchronized. It means when I Enable "Add Python 3.9 to Path" on the first page the "Add Python to environment variables" on the third page is not updated (enabled) also.

Again:
I am sure there are very good reasons for this separated options. But the wizard should make this reason clear to the user (or her/his admins) so that she/he can make an well informed decision.
msg413793 - (view) Author: Steve Dower (steve.dower) * (Python committer) Date: 2022-02-23 14:41
> I am not sure but would say that the first two options are related to the py-launcher not the the python interpreter itself.

You correctly read the options, so we'll need a suggestion on how to make it more clear without becoming impenetrable. Maybe changing the third one to say "Install Python for all users" would suffice?

Possibly we should link to the install docs from the front page for people who want more help.

> OK, but why two options?

The py.exe launcher is totally separate from the version of Python you're installing, and if you previously installed it for all users (including if you previously installed Python 3.4 or earlier), you have to install it for all users again or it won't work.

The option is on the front page so that non-admins can easily disable it and still install everything.

> This appears on the first page ("Add Python 3.9 to PATH") and on the third page ("Add Python to environment variables").

So that users can change it without having to go through the advanced install. This is the most common option to enable, even though we recommend against it unless you know what you're doing, so putting it on the front page saves _many_ users from having to go through all the other pages.

> all this options are not synchronized

That sound like a bug. And I can't reproduce it, so we might need more info.

If you go through setup a few times (without ever actually installing) and fiddle with the options, it will still produce a log file in %TEMP% that should explain which settings were modified, so we can see why they may not be updating in the UI for you.
msg413809 - (view) Author: Christian Buhtz (buhtz) Date: 2022-02-23 15:30
Thank you very much for your quick replay and for taking my problems and thoughts into account.

I have to dive deeper into the topic but still have some ideas how to re-design the wizard.

IMHO the primary problem is that on the first page the decision between "normal" and "advanced" is mixed with the settings for "normal".
msg413818 - (view) Author: Christian Buhtz (buhtz) Date: 2022-02-23 16:49
In the attachment you will find a PDF with variants A to D on each side.

I tried to think into the design decisions made by the team who created the current installer. I am not sure of course but I tried to take this (assumed) decisions into account.

Variant A:
This is nearest to the current release version.
 - The settings on page 1 are moved onto that page directly to the bottom of "Install Now" and before(!) "Customize installation".
 - The "all users" option is now available for the interpreter and launcher.
Modifying the position of the two checkboxes make‘s it more clear to which decision way (simple or customized/advanced installation) they belong.

Variant B:
The same as A but Page 2 and 3 (from A) are joined together. If there is enough room on the wizard dialog this would be OK. But very important is to visually separate the two sections "Interpreter" and "Launcher" on that one dialog. You could do that with bigger bold text like headings or you could use a horizontal bar.

Variant C (would be my second favourite):
Page 1 is more minimal. The user only have to make a decision between simple installation and advanced/customize installation.

Variant D (my favourite):
Page one offers the simple options about "PATH" and "all users" for interpreter and launcher. This should be separated in a visual way of course.
btw: From a technical point of view I do not see an advantage of separating the decision about "PATH" and "all users" between python and py. I would assume if py should goes to PATH and installed for "all users" the interpreter should treated the same.
More important on D is that the way to the "advanced" (currently named "customize") installation way is "hidden" behind a simple GUI button. A lot of other installers doing it the same way. It is just a simple button. Not big, no special colours or something like that. The page 1 of the current release version of the installer is to much bling-bling. ;)

Some more Notes and Thoughts

„Customize“ is not a good term, because it is still possible to „customize“ the installation on that first page (the two check boxes on the bottom) without clicking „Customize installation“ and
When clicking on „Customize installation“ the next (2nd) page is named „Optional Features“ which is different from „Customization“. I would suggest "Advanced" or "Expert".
It is similar with “Advanced” on page 3. What is the difference between “Advanced” and “Customize”?

Add a „What is the py launcher for“ link to the wizard.

Add a „What is pip launcher for“ link to the wizard.

In the What-for-pages: Do not describe what py/pip can do but describe what the user can do with it. Modify the perspectives/view points! I would help you to review this texts.

Use horizontal bars in the GUI to better visualise the separate ways/topics. E.g. in Variant B on page 2.

I have some more detailed suggestions about modified wording. But I think at this point it is enough. :)
msg413932 - (view) Author: Steve Dower (steve.dower) * (Python committer) Date: 2022-02-24 17:49
So I'm the "team" that designed it the first time (with input from others, of course, but it wasn't designed by a committee or anything), and the primary goal was to enable a single-click install for the majority of users, biased towards simplicity for users who are less-experienced at administering a Windows PC. This was balanced with the fact that many users would already have 2.7 or 3.4 installed, and those installers had some poor, and irreversible, design flaws.

These flaws forced us to install py.exe for all users by default, otherwise the majority of people would end up installing it lower on PATH and would never get the updates. As a result, it would break, because the launcher included with 3.4 wouldn't reliably detect 3.5, and we didn't have any option to detect or upgrade it.

However, this meant that admin permissions would be required for a default install, which is not acceptable. So the front page option to switch that setting was added so that non-admin users could easily disable the admin requirement.

The PATH option was added under protest, because too many users/teachers rely on it for their coursework and wanted it to be easier to find. If we could safely enable it by default we would, but it's fundamentally an unsafe operation. But it's popular, so that's why it's on the front page.

So unsurprisingly, I like your variant A the best, which is really just tweaking the Tools/msi/bundle/Default.thm file a bit. It maintains the short path for those who want it (which we believe is the majority of users), and hopefully makes it clearer for advanced users.

I dislike variant C because of the second page for simple installs. And for variant D we wouldn't offer per-machine installs for the runtime, and we wouldn't offer PATH options for the launcher, so it basically boils down to making the advanced button harder to find with less explanation.

So if you'd like to propose a PR with changes to the files in Tools/msi/bundle to match your actual UIs, feel free. It _should_ automatically build the installer if you've modified those files, and you _should_ be able to download it for testing, though if not it isn't hard to build locally with Tools/msi/build.bat.

(And of course, this would only apply to 3.11, so I've updated the version field.)
msg414081 - (view) Author: Christian Buhtz (buhtz) Date: 2022-02-26 08:33
Dear Steve,
thanks for your feedback. I did not understand all details of your design decisions but I am OK with that.

Variant A is fine for me, too. The important to points of A for me are 1) that the checkboxes on page 1 are moved up directly under the "Install Now" to make clear where they belong to and 2) the (easier to understand) separation between interpreter- (page2) and launcher-settings (page3).

My apologize but I am not able to create PRs/patches. I am not familiar with your development environment and not able to invest time to learn it because in the feature it does not seems like I will create more patches for something because I do not have the expertise for a python interpreter.

But I understand that is a question of resources. If there are currently now resources I would recommend to keep this ticket open.
History
Date User Action Args
2022-04-11 14:59:56adminsetgithub: 90989
2022-02-26 15:00:05eric.araujosetmessages: - msg414082
2022-02-26 15:00:02eric.araujosetfiles: - タイピング練習 (日本語編)|Benesseの大学・短期大学・専門学校の受験、進学情報.pdf
2022-02-26 08:36:30h30-04213setfiles: + タイピング練習 (日本語編)|Benesseの大学・短期大学・専門学校の受験、進学情報.pdf
nosy: + h30-04213
messages: + msg414082

2022-02-26 08:33:24buhtzsetmessages: + msg414081
2022-02-25 20:35:19terry.reedysettitle: Installer Wizard is unclear and has redundant settings -> Windows installer is unclear and has redundant settings
2022-02-24 17:49:09steve.dowersetmessages: + msg413932
versions: + Python 3.11, - Python 3.9
2022-02-23 16:49:01buhtzsetfiles: + py_installer.pdf

messages: + msg413818
2022-02-23 15:30:11buhtzsetmessages: + msg413809
2022-02-23 14:41:35steve.dowersetmessages: + msg413793
2022-02-23 08:22:08buhtzcreate