diff --git a/Lib/idlelib/help.html b/Lib/idlelib/help.html index 24fd77da904..1cd9b6913de 100644 --- a/Lib/idlelib/help.html +++ b/Lib/idlelib/help.html @@ -616,23 +616,33 @@ be to delete one or more of the configuration files.
If IDLE quits with no message, and it was not started from a console, try
starting from a console (python -m idlelib) and see if a message appears.
With rare exceptions, the result of executing Python code with IDLE is
-intended to be the same as executing the same code in a console window.
+intended to be the same as executing the same code by the default method,
+directly with Python in a text-mode system console or terminal window.
However, the different interface and operation occasionally affect
-visible results. For instance, sys.modules starts with more entries.
IDLE also replaces sys.stdin, sys.stdout, and sys.stderr with
-objects that get input from and send output to the Shell window.
-When Shell has the focus, it controls the keyboard and screen. This is
+visible results. For instance, sys.modules starts with more entries,
+and threading.activeCount() returns 2 instead of 1.
By default, IDLE runs user code in a separate OS process rather than in
+the user interface process that runs the shell and editor. In the execution
+process, it replaces sys.stdin, sys.stdout, and sys.stderr
+with objects that get input from and send output to the Shell window.
+The original values stored in sys.__stdin__, sys.__stdout__, and
+sys.__stderr__ are not touched, but may be None.
When Shell has the focus, it controls the keyboard and screen. This is
normally transparent, but functions that directly access the keyboard
-and screen will not work. If sys is reset with importlib.reload(sys),
-IDLE’s changes are lost and things like input, raw_input, and
-print will not work correctly.
With IDLE’s Shell, one enters, edits, and recalls complete statements.
-Some consoles only work with a single physical line at a time. IDLE uses
-exec to run each statement. As a result, '__builtins__' is always
-defined for each statement.
IDLE’s standard stream replacements are not inherited by subprocesses
+created in the execution process, whether directly by user code or by modules
+such as multiprocessing. If such subprocess use input from sys.stdin
+or print or write to sys.stdout or sys.stderr,
+IDLE should be started in a command line window. The secondary subprocess
+will then be attached to that window for input and output.
If sys is reset by user code, such as with importlib.reload(sys),
+IDLE’s changes are lost and input from the keyboard and output to the screen
+will not work correctly.