python script doesn't stop with sys.exit()

In my Program I have a GUI with a progressbar. The value of the progressbar is a variable of a other script so I created an update function that refreshes the GUI so I have a moving progressbar.

def update(lblhowfar,bar,window,Zeitraum,auswahl,testprogress):# update function to refresh the progress bar and the percentage label
    while rd.filtering_done==False:
        Progress=int(rd.Zähler/rd.Nenner)
        percent=Progress,"%","of","100","%"
        if testprogress < Progress:
            bar['value'] = Progress
            testprogress=Progress
            lblhowfar.config(text=percent)
        window.update()
        time.sleep(.1)
    if rd.filtering_done:# when RelevanteDaten.py is done
        while rd.appending:
            time.sleep(.5)
            continue
        bar['value'] = 100
        percent="100","%","of","100","%"
        lblhowfar.config(text=percent)
        lbl2=Label(window, text="Filtering done",font=("Helvetica Neue 55 Roman",15))
        lbl2.pack()
        window.update()
        RelevanteDaten=rd.RelevanteDaten# Import important data from RelevanteDaten.py
        Continue(RelevanteDaten,lbl2,lblhowfar,bar,window,Zeitraum,auswahl,)
    else:
        window.after(1,update(lblhowfar,bar,window,Zeitraum,auswahl,testprogress))

on the GUI I wanted to have a button that will shut down the program but when i execute the button, I get an error message.

def Destroy(window,):#shuts down the program
    plt.close(fig="all")
    window.destroy()
    sys.exit()
Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\User\AppData\Local\Programs\Python\Python37-32\lib\tkinter\__init__.py", line 1702, in __call__
    return self.func(*args)
  File "CheckTool.py", line 258, in <lambda>
    button1 = Button(window, text="Use", command=lambda:button_generate(window,checkVariableForCheckBoxList,Zeitraum,),font=("Helvetica Neue 55 Roman",20))
  File "CheckTool.py", line 290, in button_generate
    get_selected_boxes(checkVariableForCheckBoxList,window,Zeitraum,)
  File "CheckTool.py", line 299, in get_selected_boxes
    create_progress_bar(Zeitraum,auswahl,)
  File "CheckTool.py", line 446, in create_progress_bar
    progressscreen.after(1,update(lblhowfar,bar,window,Zeitraum,auswahl,testprogress))
  File "CheckTool.py", line 231, in update
    window.update()
  File "C:\User\AppData\Local\Programs\Python\Python37-32\lib\tkinter\__init__.py", line 1174, in update
    self.tk.call('update')
_tkinter.TclError: can't invoke "update" command: application has been destroyed

so apparently the update function still runs although it should stop with sys.exit(). Right?

Already thank you for your help.

Kind regards


Asked by: Anna351 | Posted: 27-01-2022






Similar questions

Python sys.exit() help?

I am working in Python and am trying to have a line of code execute and after it executes I am calling sys.exit() to have the script itself "exit." However, it seems that sys.exit() is executing before the line of code above it executes. Below is the code I am trying to implement: if something == True: self.redirect('http://www.google.com/') sys.exit() The...


python - Issue with sys.exit() in pygame

I am learning to use Pygame, and when I use sys.exit(), I run into a problem. Here is the code: import pygame, sys,os from pygame.locals import * pygame.init() window = pygame.display.set_mode((468, 60)) pygame.display.set_caption('Game') screen = pygame.display.get_surface() file_name = os.path.join("data","image.bmp") surface = pygame.image.load(file_name) screen.blit(surface, (0,0)...


How to use sys.exit() in Python

player_input = '' # This has to be initialized for the loop while player_input != 0: player_input = str(input('Roll or quit (r or q)')) if player_input == q: # This will break the loop if the player decides to quit print("Now let's see if I can beat your score of", player) break if player_input != r: print('invalid choice, try again') if player_input ==r: roll...


python - Is it possible for a unit test to assert that a method calls sys.exit()?

I have a Python 2.7 method that sometimes calls sys.exit(1) Is it possible to make a unit test that verifies this line of code is called when the right conditions are met?


linux - Python Daemon Thread Clean Up Logic on Abrupt sys.exit()

Using Linux and Python 2.7.6, I have a script that uploads lots of files at one time. I am using multi-threading with the Queue and Threading modules. I implemented a handler for SIGINT to stop the script if the user hits ctrl-C. I prefer to use daemon threads so I don't have to clear the queue, which would require alot of re-writing code to make the SIGINT handler have access to the Queue object since the handler...


python - Try and Except catch all errors, except for sys.exit()

I have created a function, but errors could pop up. That is why I want to use exceptions to generalize all errors into the same message. However, this function contains multiple sys.exit() calls. As a result, I would like to have my code jump into the except handler if an error was raised, unless it is caused by sys.exit(). How do I do this? try: myF...


python - How do I use sys.exit()?

How do I use sys.exit() in this while loop? The user inputs 3 sides of a triangle. If it is a right angle Pythagorean triangle, then it prints. If the user enters "0", the program ends. Also, is there a better way to write the infinite while loop besides using count = 0 and never incrementing it? def pythagoreanTriple(): count = 0 print("input 3 sides of a triang...


python - I can't catch sys.exit()

I want to prevent a python program to quit when it calls sys.exit, but the following solution doesn't work: Python 3.9.1 (tags/v3.9.1:1e5d33e, Dec 7 2020, 17:08:21) [MSC v.1927 64 bit (AMD64)] on win32 &gt;&gt;&gt; import sys &gt;&gt;&gt; try: ... sys.exit() ... except SystemExit: ... print('asd') ... Process finished with exit code 0 I've also tried BaseExcep...


python - using sys.exit() and heroku threw an error

2022-02-21T01:07:54.352381+00:00 heroku[router]: at=error code=H14 desc=&quot;No web processes running&quot; method=GET path=&quot;/&quot; host=_botname.herokuapp.com request_id=88df74f6-a5a1-4ee9-a0a5-c98a22a60949 fwd=&quot;115.66.143.26&quot; dyno= connect= service= status=503 bytes= protocol=https 2022-02-21T01:07:54.988568+00:00 heroku[router]: at=error code=H14 desc=&quot;No web processes running&quot; method=...


python - Unittest causing sys.exit()

No matter what I do sys.exit() is called by unittest, even the most trivial examples. I can't tell if my install is messed up or what is going on. IDLE 1.2.2 ==== No Subprocess ==== &gt;&gt;&gt; import unittest &gt;&gt;&gt; &gt;&gt;&gt; class Test(unittest.TestCase): def testA(self): a = 1 self.assertEqual(a,1) &gt;&gt;&gt; unittest.main() option -n not recognized Usa...


python - Handle sys.exit() in cherrypy service

When you start/stop a python cherrypy service (compiled with py2exe), this works fine When I get a sys.exit() call (from my error handler), cherrypy quits, but the service remains hanging. Code: import cherrypy import win32serviceutil import win32service import sys SERVICE = None class HelloWorld: """ Sample request handler class. """ def __init__(self): self.iVal = ...


linux - How to bypass the 0-255 range limit for sys.exit() in python?

In python (on a Linux system), I'm launching a command using os.system() and retrieving the return code. If that return code is different from 0, I would like to make the program exit with that same return code. So I wrote: ret = os.system(cmd) if ret != 0: print "exit with status %s" % ret sys.exit(ret) When the return code is lower than 256, it works fine, but when it'...


Python sys.exit() help?

I am working in Python and am trying to have a line of code execute and after it executes I am calling sys.exit() to have the script itself "exit." However, it seems that sys.exit() is executing before the line of code above it executes. Below is the code I am trying to implement: if something == True: self.redirect('http://www.google.com/') sys.exit() The...


mocking - How to get around "sys.exit()" in python nosetest?

It seems that python nosetest will quit when encountered sys.exit(), and mocking of this builtin doesn't work.


import - python: Importing scipy.io seems to prevent sys.exit() to work properly

Under Windows, executing the following Python script I get an ERRORLEVEL of 0 instead of the expected 2. import sys import scipy.io sys.exit(2) If I remove the import scipy.io, I got the correct ERRORLEVEL of 2... Any idea why importing scipy.io cause such an issue? PS: windows 7, python 2.72, scipy 0.10.1 Calling help(sys.exit) just before the sys.exit call return...


python - Issue with sys.exit() in pygame

I am learning to use Pygame, and when I use sys.exit(), I run into a problem. Here is the code: import pygame, sys,os from pygame.locals import * pygame.init() window = pygame.display.set_mode((468, 60)) pygame.display.set_caption('Game') screen = pygame.display.get_surface() file_name = os.path.join("data","image.bmp") surface = pygame.image.load(file_name) screen.blit(surface, (0,0)...


python - Why are the methods sys.exit(), exit(), raise SystemExit not working?

I need an alternative to kill the python script while inside a thread function. My intention is killing the server when the client enters a 0... Is this not working because the threads haven't been terminated? Here is my code: socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM); print 'Socket created' try: socket.bind((HOST, PORT)) except socket.error, message: print 'Bind statement failed. ...


How to use sys.exit() in Python

player_input = '' # This has to be initialized for the loop while player_input != 0: player_input = str(input('Roll or quit (r or q)')) if player_input == q: # This will break the loop if the player decides to quit print("Now let's see if I can beat your score of", player) break if player_input != r: print('invalid choice, try again') if player_input ==r: roll...


python - Is it possible for a unit test to assert that a method calls sys.exit()?

I have a Python 2.7 method that sometimes calls sys.exit(1) Is it possible to make a unit test that verifies this line of code is called when the right conditions are met?






Still can't find your answer? Check out these communities...



PySlackers | Full Stack Python | NHS Python | Pythonist Cafe | Hacker Earth | Discord Python



top