mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 19:34:08 +00:00 
			
		
		
		
	Issue 21995: Explain some differences between IDLE and console Python.
This commit is contained in:
		
							parent
							
								
									bfd9767e0f
								
							
						
					
					
						commit
						0053c47785
					
				
					 2 changed files with 50 additions and 13 deletions
				
			
		| 
						 | 
					@ -16,7 +16,7 @@ IDLE has the following features:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* coded in 100% pure Python, using the :mod:`tkinter` GUI toolkit
 | 
					* coded in 100% pure Python, using the :mod:`tkinter` GUI toolkit
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* cross-platform: works on Windows, Unix, and Mac OS X
 | 
					* cross-platform: works mostly the same on Windows, Unix, and Mac OS X
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* Python shell window (interactive interpreter) with colorizing
 | 
					* Python shell window (interactive interpreter) with colorizing
 | 
				
			||||||
  of code input, output, and error messages
 | 
					  of code input, output, and error messages
 | 
				
			||||||
| 
						 | 
					@ -492,8 +492,8 @@ Shell colors:
 | 
				
			||||||
      black
 | 
					      black
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Startup
 | 
					Startup and code execution
 | 
				
			||||||
-------
 | 
					--------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Upon startup with the ``-s`` option, IDLE will execute the file referenced by
 | 
					Upon startup with the ``-s`` option, IDLE will execute the file referenced by
 | 
				
			||||||
the environment variables :envvar:`IDLESTARTUP` or :envvar:`PYTHONSTARTUP`.
 | 
					the environment variables :envvar:`IDLESTARTUP` or :envvar:`PYTHONSTARTUP`.
 | 
				
			||||||
| 
						 | 
					@ -538,10 +538,27 @@ If there are arguments:
 | 
				
			||||||
  ``sys.argv`` reflects the arguments passed to IDLE itself.
 | 
					  ``sys.argv`` reflects the arguments passed to IDLE itself.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					IDLE-console differences
 | 
				
			||||||
 | 
					^^^^^^^^^^^^^^^^^^^^^^^^
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					As much as possible, the result of executing Python code with IDLE is the
 | 
				
			||||||
 | 
					same as executing the same code in a console window.  However, the different
 | 
				
			||||||
 | 
					interface and operation occasionally affects results.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					For instance, IDLE normally executes user code in a separate process from
 | 
				
			||||||
 | 
					the IDLE GUI itself.  The IDLE versions of sys.stdin, .stdout, and .stderr in the
 | 
				
			||||||
 | 
					execution process get input from and send output to the GUI process,
 | 
				
			||||||
 | 
					which keeps control of the keyboard and screen.  This is normally transparent,
 | 
				
			||||||
 | 
					but code that access these object will see different attribute values.
 | 
				
			||||||
 | 
					Also, functions that directly access the keyboard and screen will not work.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					With IDLE's Shell, one enters, edits, and recalls complete statements.
 | 
				
			||||||
 | 
					Some consoles only work with a single physical line at a time.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Running without a subprocess
 | 
					Running without a subprocess
 | 
				
			||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 | 
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 | 
				
			||||||
 | 
					
 | 
				
			||||||
By default, Idle executes user code in a separate subprocess via a socket,
 | 
					By default, IDLE executes user code in a separate subprocess via a socket,
 | 
				
			||||||
which uses the internal loopback interface.  This connection is not
 | 
					which uses the internal loopback interface.  This connection is not
 | 
				
			||||||
externally visible and no data is sent to or received from the Internet.
 | 
					externally visible and no data is sent to or received from the Internet.
 | 
				
			||||||
If firewall software complains anyway, you can ignore it.
 | 
					If firewall software complains anyway, you can ignore it.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -79,7 +79,7 @@
 | 
				
			||||||
<p>IDLE has the following features:</p>
 | 
					<p>IDLE has the following features:</p>
 | 
				
			||||||
<ul class="simple">
 | 
					<ul class="simple">
 | 
				
			||||||
<li>coded in 100% pure Python, using the <a class="reference internal" href="tkinter.html#module-tkinter" title="tkinter: Interface to Tcl/Tk for graphical user interfaces"><tt class="xref py py-mod docutils literal"><span class="pre">tkinter</span></tt></a> GUI toolkit</li>
 | 
					<li>coded in 100% pure Python, using the <a class="reference internal" href="tkinter.html#module-tkinter" title="tkinter: Interface to Tcl/Tk for graphical user interfaces"><tt class="xref py py-mod docutils literal"><span class="pre">tkinter</span></tt></a> GUI toolkit</li>
 | 
				
			||||||
<li>cross-platform: works on Windows, Unix, and Mac OS X</li>
 | 
					<li>cross-platform: works mostly the same on Windows, Unix, and Mac OS X</li>
 | 
				
			||||||
<li>Python shell window (interactive interpreter) with colorizing
 | 
					<li>Python shell window (interactive interpreter) with colorizing
 | 
				
			||||||
of code input, output, and error messages</li>
 | 
					of code input, output, and error messages</li>
 | 
				
			||||||
<li>multi-window text editor with multiple undo, Python colorizing,
 | 
					<li>multi-window text editor with multiple undo, Python colorizing,
 | 
				
			||||||
| 
						 | 
					@ -223,7 +223,12 @@ there is a syntax error, the approximate location is indicated in the
 | 
				
			||||||
Editor window.</dd>
 | 
					Editor window.</dd>
 | 
				
			||||||
<dt>Run Module</dt>
 | 
					<dt>Run Module</dt>
 | 
				
			||||||
<dd>Do Check Module (above).  If no error, restart the shell to clean the
 | 
					<dd>Do Check Module (above).  If no error, restart the shell to clean the
 | 
				
			||||||
environment, then execute the module.</dd>
 | 
					environment, then execute the module.  Output is displayed in the Shell
 | 
				
			||||||
 | 
					window.  Note that output requires use of <tt class="docutils literal"><span class="pre">print</span></tt> or <tt class="docutils literal"><span class="pre">write</span></tt>.
 | 
				
			||||||
 | 
					When execution is complete, the Shell retains focus and displays a prompt.
 | 
				
			||||||
 | 
					At this point, one may interactively explore the result of execution.
 | 
				
			||||||
 | 
					This is similar to executing a file with <tt class="docutils literal"><span class="pre">python</span> <span class="pre">-i</span> <span class="pre">file</span></tt> at a command
 | 
				
			||||||
 | 
					line.</dd>
 | 
				
			||||||
</dl>
 | 
					</dl>
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
<div class="section" id="shell-menu-shell-window-only">
 | 
					<div class="section" id="shell-menu-shell-window-only">
 | 
				
			||||||
| 
						 | 
					@ -467,8 +472,8 @@ uncolorized text.  To change the color scheme, edit the <tt class="docutils lite
 | 
				
			||||||
</dd>
 | 
					</dd>
 | 
				
			||||||
</dl>
 | 
					</dl>
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
<div class="section" id="startup">
 | 
					<div class="section" id="startup-and-code-execution">
 | 
				
			||||||
<h2>25.5.4. Startup<a class="headerlink" href="#startup" title="Permalink to this headline">¶</a></h2>
 | 
					<h2>25.5.4. Startup and code execution<a class="headerlink" href="#startup-and-code-execution" title="Permalink to this headline">¶</a></h2>
 | 
				
			||||||
<p>Upon startup with the <tt class="docutils literal"><span class="pre">-s</span></tt> option, IDLE will execute the file referenced by
 | 
					<p>Upon startup with the <tt class="docutils literal"><span class="pre">-s</span></tt> option, IDLE will execute the file referenced by
 | 
				
			||||||
the environment variables <span class="target" id="index-5"></span><tt class="xref std std-envvar docutils literal"><span class="pre">IDLESTARTUP</span></tt> or <span class="target" id="index-6"></span><a class="reference internal" href="../using/cmdline.html#envvar-PYTHONSTARTUP"><tt class="xref std std-envvar docutils literal"><span class="pre">PYTHONSTARTUP</span></tt></a>.
 | 
					the environment variables <span class="target" id="index-5"></span><tt class="xref std std-envvar docutils literal"><span class="pre">IDLESTARTUP</span></tt> or <span class="target" id="index-6"></span><a class="reference internal" href="../using/cmdline.html#envvar-PYTHONSTARTUP"><tt class="xref std std-envvar docutils literal"><span class="pre">PYTHONSTARTUP</span></tt></a>.
 | 
				
			||||||
IDLE first checks for <tt class="docutils literal"><span class="pre">IDLESTARTUP</span></tt>; if <tt class="docutils literal"><span class="pre">IDLESTARTUP</span></tt> is present the file
 | 
					IDLE first checks for <tt class="docutils literal"><span class="pre">IDLESTARTUP</span></tt>; if <tt class="docutils literal"><span class="pre">IDLESTARTUP</span></tt> is present the file
 | 
				
			||||||
| 
						 | 
					@ -506,9 +511,23 @@ set in the Options dialog.</li>
 | 
				
			||||||
<tt class="docutils literal"><span class="pre">sys.argv</span></tt> reflects the arguments passed to IDLE itself.</li>
 | 
					<tt class="docutils literal"><span class="pre">sys.argv</span></tt> reflects the arguments passed to IDLE itself.</li>
 | 
				
			||||||
</ul>
 | 
					</ul>
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
 | 
					<div class="section" id="idle-console-differences">
 | 
				
			||||||
 | 
					<h3>25.5.4.2. IDLE-console differences<a class="headerlink" href="#idle-console-differences" title="Permalink to this headline">¶</a></h3>
 | 
				
			||||||
 | 
					<p>As much as possible, the result of executing Python code with IDLE is the
 | 
				
			||||||
 | 
					same as executing the same code in a console window.  However, the different
 | 
				
			||||||
 | 
					interface and operation occasionally affects results.</p>
 | 
				
			||||||
 | 
					<p>For instance, IDLE normally executes user code in a separate process from
 | 
				
			||||||
 | 
					the IDLE GUI itself.  The IDLE versions of sys.stdin, .stdout, and .stderr in the
 | 
				
			||||||
 | 
					execution process get input from and send output to the GUI process,
 | 
				
			||||||
 | 
					which keeps control of the keyboard and screen.  This is normally transparent,
 | 
				
			||||||
 | 
					but code that access these object will see different attribute values.
 | 
				
			||||||
 | 
					Also, functions that directly access the keyboard and screen will not work.</p>
 | 
				
			||||||
 | 
					<p>With IDLE’s Shell, one enters, edits, and recalls complete statements.
 | 
				
			||||||
 | 
					Some consoles only work with a single physical line at a time.</p>
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
<div class="section" id="running-without-a-subprocess">
 | 
					<div class="section" id="running-without-a-subprocess">
 | 
				
			||||||
<h3>25.5.4.2. Running without a subprocess<a class="headerlink" href="#running-without-a-subprocess" title="Permalink to this headline">¶</a></h3>
 | 
					<h3>25.5.4.3. Running without a subprocess<a class="headerlink" href="#running-without-a-subprocess" title="Permalink to this headline">¶</a></h3>
 | 
				
			||||||
<p>By default, Idle executes user code in a separate subprocess via a socket,
 | 
					<p>By default, IDLE executes user code in a separate subprocess via a socket,
 | 
				
			||||||
which uses the internal loopback interface.  This connection is not
 | 
					which uses the internal loopback interface.  This connection is not
 | 
				
			||||||
externally visible and no data is sent to or received from the Internet.
 | 
					externally visible and no data is sent to or received from the Internet.
 | 
				
			||||||
If firewall software complains anyway, you can ignore it.</p>
 | 
					If firewall software complains anyway, you can ignore it.</p>
 | 
				
			||||||
| 
						 | 
					@ -599,9 +618,10 @@ are currently:</p>
 | 
				
			||||||
</ul>
 | 
					</ul>
 | 
				
			||||||
</li>
 | 
					</li>
 | 
				
			||||||
<li><a class="reference internal" href="#syntax-colors">25.5.3. Syntax colors</a></li>
 | 
					<li><a class="reference internal" href="#syntax-colors">25.5.3. Syntax colors</a></li>
 | 
				
			||||||
<li><a class="reference internal" href="#startup">25.5.4. Startup</a><ul>
 | 
					<li><a class="reference internal" href="#startup-and-code-execution">25.5.4. Startup and code execution</a><ul>
 | 
				
			||||||
<li><a class="reference internal" href="#command-line-usage">25.5.4.1. Command line usage</a></li>
 | 
					<li><a class="reference internal" href="#command-line-usage">25.5.4.1. Command line usage</a></li>
 | 
				
			||||||
<li><a class="reference internal" href="#running-without-a-subprocess">25.5.4.2. Running without a subprocess</a></li>
 | 
					<li><a class="reference internal" href="#idle-console-differences">25.5.4.2. IDLE-console differences</a></li>
 | 
				
			||||||
 | 
					<li><a class="reference internal" href="#running-without-a-subprocess">25.5.4.3. Running without a subprocess</a></li>
 | 
				
			||||||
</ul>
 | 
					</ul>
 | 
				
			||||||
</li>
 | 
					</li>
 | 
				
			||||||
<li><a class="reference internal" href="#help-and-preferences">25.5.5. Help and preferences</a><ul>
 | 
					<li><a class="reference internal" href="#help-and-preferences">25.5.5. Help and preferences</a><ul>
 | 
				
			||||||
| 
						 | 
					@ -676,7 +696,7 @@ are currently:</p>
 | 
				
			||||||
    The Python Software Foundation is a non-profit corporation.
 | 
					    The Python Software Foundation is a non-profit corporation.
 | 
				
			||||||
    <a href="https://www.python.org/psf/donations/">Please donate.</a>
 | 
					    <a href="https://www.python.org/psf/donations/">Please donate.</a>
 | 
				
			||||||
    <br />
 | 
					    <br />
 | 
				
			||||||
    Last updated on Sep 23, 2015.
 | 
					    Last updated on Sep 24, 2015.
 | 
				
			||||||
    <a href="../bugs.html">Found a bug</a>?
 | 
					    <a href="../bugs.html">Found a bug</a>?
 | 
				
			||||||
    <br />
 | 
					    <br />
 | 
				
			||||||
    Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.2.3.
 | 
					    Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.2.3.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue