On Sat, Feb 1, 2014 at 8:20 PM, Steven D'Aprano <st...@pearwood.info> wrote: > > I'm afraid that I have no idea what you are talking about here, Python > doesn't accept a -n argument:
-n is an IDLE option: If IDLE is started with the -n command line switch it will run in a single process and will not create the subprocess which runs the RPC Python execution server. This can be useful if Python cannot create the subprocess or the RPC socket interface on your platform. However, in this mode user code is not isolated from IDLE itself. Also, the environment is not restarted when Run/Run Module (F5) is selected. If your code has been modified, you must reload() the affected modules and re-import any specific items (e.g. from foo import baz) if the changes are to take effect. For these reasons, it is preferable to run IDLE with the default subprocess if at all possible. With respect to Tkinter, using -n allows your widgets to piggyback on IDLE's main loop. I looked into this a bit: In a terminal you usually don't have to manually `update` [1] the embedded Tcl interpreter's event queue. What happens is the _tkinter extension module sets the global function pointer PyOS_InputHook to a function that calls Tcl_DoOneEvent [2]. The readline module calls this hook about 10 times per second while waiting for input. However, readline isn't used for IDLE's child process, which gets code from a socket in a background thread. [1] http://www.tcl.tk/man/tcl8.5/TclCmd/update.htm [2] http://www.tcl.tk/man/tcl8.5/TclLib/DoOneEvent.htm _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor