No shortcut Icon on Desktop

Eryk Sun eryksun at gmail.com
Mon Apr 18 10:41:18 EDT 2022


On 4/15/22, Grant Edwards <grant.b.edwards at gmail.com> wrote:
>
> The problem is that people run the installer, don't see a desktop
> icon, and think nothing has been installed.

Such people need to learn how to use the start menu, where all of
Python's shortcuts are installed in a folder named "Python <X.Y>". One
can also press the Windows key and type "python" to get a filtered
view of the application shortcuts.

> Or they think the installer "is python", and run it over and over
> again trying to "run Python".

I'm not opposed to renaming the installer to something that makes it
more obvious that it's only an installer. But, to put this in
perspective, I think you're talking about a small number of people out
of the millions of users who I presume install and use Python without
a problem. It could be that thousands of people install Python and
give up without complaining when they can't use it, but I doubt it.

> If the installer, by default, created an IDLE desktop shortcut and a
> cmd.exe shortcut that ran Python, I believe it would eliminate most of
> those problems.

The installed shortcuts are to IDLE (via "pythonw.exe") and
"python.exe". IDLE is a graphical integrated development environment
(shell, editor, debugger) that by default runs an interactive shell.
The "python.exe" executable is a console (terminal) application that
by default runs an interactive shell if its arguments do not specify a
script file, -m module, or -c command to run.

A console application is attached to a console session, a resource
that's hosted by an instance of "conhost.exe" or (in a tab of Windows
Terminal) "openconsole.exe".  It connects to the console session via
files on the ConDrv device (e.g. "\Device\ConDrv\Connect",
"\Device\ConDrv\Input", "\Device\ConDrv\Output").

If an application executable is flagged as a console application, such
as "python.exe", and no console session was inherited from the parent
process, and the process wasn't spawned with the DETACHED_PROCESS
flag, then the Windows base API automatically allocates and attaches
to a new console session at startup during the initialization of
kernelbase.dll. If an application executable is flagged as a graphical
application, such as "pythonw.exe", then a console session is never
inherited and never automatically allocated, but one can be manually
allocated or acquired via AllocConsole() or
AttachConsole(dwProcessId).


More information about the Python-list mailing list