the python shell window is already executing a command

Seymore4Head Seymore4Head at Hotmail.invalid
Thu Sep 18 17:24:56 CEST 2014


On Wed, 17 Sep 2014 23:50:56 -0400, Terry Reedy <tjreedy at udel.edu>
wrote:

>On 9/17/2014 9:34 PM, Seymore4Head wrote:
>> On Wed, 17 Sep 2014 18:56:47 -0400, Terry Reedy <tjreedy at udel.edu>
>
>>> A little digging with Idle's grep (Find in Files) shows that the message
>>> is produced by this code in idlelib/PyShell.py, about 825.
>>>
>>>      def display_executing_dialog(self):
>>>          tkMessageBox.showerror(
>>>              "Already executing",
>>>              "The Python Shell window is already executing a command; "
>>>              "please wait until it is finished.",
>>>              master=self.tkconsole.text)
>>>
>>> This function is only called here (about line 735)
>>>      def runcommand(self, code):
>>>          "Run the code without invoking the debugger"
>>>          # The code better not raise an exception!
>>>          if self.tkconsole.executing:
>>>              self.display_executing_dialog()
>>>          <else run idle code in user process output view user>
>>>
>>> How is this run?  Run-Module F5 invokes
>>> ScriptBinding.run_module_event(116) and thence _run_module_event (129).
>>> This methods includes this.
>>>          if PyShell.use_subprocess:
>>>              interp.restart_subprocess(with_cwd=False)
>>>
>>> restart_subprocess includes these lines (starting at 470):
>>>          # Kill subprocess, spawn a new one, accept connection.
>>>          self.rpcclt.close()
>>>          self.terminate_subprocess()
>>>          console = self.tkconsole
>>>          ...
>>>          console.executing = False  # == self.tkconsole
>>>          ...
>>>          self.transfer_path(with_cwd=with_cwd)
>>>
>>> transfer_path calls runcommand but only after tkconsole.executing has
>>> been set to False.  But this only happens if PyShell.use_subprocess is
>>> True, which it normally is, but not if one starts Idle with the -n option.
>>>
>>> After conditionally calling interp.restart_subprocess, _run_module_event
>>> directly calls interp.runcommand, which can fail when running with -n.
>>> Are you?  This is the only way I know to get the error message.  Is so,
>>> the second way to not get the error message is to not use -n and run
>>> normally.
>>
>> Sorry.  I don't speak python yet.  Quite a few of the above terms are
>> new to me.
>>
>> It may be that was trying to run the program again before the current
>> one was finished.  In the past I was getting the error when I was
>> (almost) sure the program had finished.  I will be more careful in the
>> future, but I will also keep an eye out for the problem to repeat.
>> I just tried to run the above program again and gave it more time to
>> finish and I did not get the error, so it could well be I was jumping
>> the gun.
>
>My question was "How do you start Idle?"
>(I can make a difference.)

The way I start IDLE is to go to my programs folder and right click on
file.py in the directory and select "edit with IDLE".



More information about the Python-list mailing list