On Sun, Jan 17, 2016 at 6:05 PM, Michael Torrie <torr...@gmail.com> wrote:
> On 01/17/2016 02:46 PM, eryk sun wrote:
>> On Sun, Jan 17, 2016 at 9:03 AM, Michael Torrie <torr...@gmail.com> wrote:
>>>
>>> but if it's a text-mode program you must run it from cmd.exe like this:
>>>
>>> python \path\to\myprogram.py.
>>
>> You only need to run from another console program to keep the window
>> open after Python exits. You can even do that in other ways, but doing
>> that is more complicated than it is useful.
>
> Yes, but then we'll get the OP posting to ask why his python program
> doesn't run. When he double-clicks his Py file it pops up briefly then
> disappears! (Unless the code waits for user input of course).

I was attempting to clarify the language that one "must run it from
cmd.exe". This only needs to be done if you need to keep the window
open after a console program has exited. Also, it doesn't have to be
cmd.exe. You can use powershell.exe, bash.exe, another instance of
python.exe, etc -- any console program that lets you start a child
process and wait for it to exit.

>> BTW, each console window is hosted by an instance of conhost.exe.
>> There's nothing special about cmd.exe with respect to the console.
>
> Of course, but I doubt very many people know about conhost.exe.  And
> conhost.exe is rather useless in and of itself unless you have something
> to run on it.  Thus the usual way to get a console window that you can
> actually work with is to run cmd.exe.  I seriously doubt you would tell
> a newbie to somehow use conhost.exe to run his program.

I often come across even experienced Windows programmers on Stack
Overflow who somehow have drawn the conclusion that cmd.exe *is the
console*. I take whatever opportunity I can get to correct this
misunderstanding with a little FYI note.

For a newbie, I would of course suggest IDLE. I may also suggest
changing the shebang to "#!python3 -i" while debugging a script. They
can double-click on the script's icon to run it, and after it's done
executing or if there's an unhandled exception, they can inspect the
result in the REPL.
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to