RunTimeError: Bei Interpreter Shutdown kann er nicht neu erstellen, während er auf einem anderen Computer vollkommen in

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: RunTimeError: Bei Interpreter Shutdown kann er nicht neu erstellen, während er auf einem anderen Computer vollkommen in

by Anonymous » 17 Mar 2025, 16:01

Ich habe ein Python -Programm, das ich in VSCODE ausführe, aber irgendwann erhalte ich diesen RuntimeError: Ich kann bei Interpreter Shutdown keinen neuen Thread erstellen und ich schließe nichts, ich verstehe nicht. Und übrigens funktioniert das gleiche Programm auf meinem Freund Computer (wir haben genau das gleiche) < /p>
Code (Entschuldigung, es ist ein bisschen lang, aber ich kann es nicht kürzer machen, ich habe bereits alles ausgeschlossen, was nicht wichtig war): < /p>
import tkinter
from tkinter import ttk
import threading
import time

class Main:
def __init__(self) -> None:

# Variables to check if the progress bar is running (not crucial for the current issue)
self.is_progress_bar_running = False
self.is_change = False
self.state = None
self.client_loaded = False
# Launching everything in parallel
thread_client_list = threading.Thread(target=self.client_list)
thread_client_list.start()
thread_get_sites = threading.Thread(target=self.get_sites)
thread_get_sites.start()
tkinter_start = threading.Thread(target=self.show_gui)
tkinter_start.start()

def client_list(self):
"""Find clients
"""

time.sleep(3)

self.client_loaded = True
return

def get_sites(self):
"""Find sites
"""

time.sleep(3)

return

def start_progress_bar(self, direction):
"""Starts the loading bar until everything is loaded

Args:
direction (bool): True if the bar is moving to the right, False if the bar is moving to the left
"""
if not self.is_progress_bar_running:
self.is_progress_bar_running = True
# If self.client_loaded
if not isinstance(self.client_loading, ttk.Progressbar):
self.state = None
self.is_change = False

self.client_loading_label["text"] = "Loading clients in progress..."
self.client_loading.destroy()
self.client_loading = ttk.Progressbar(self.general_info_frame, orient="horizontal", length=100, mode="indeterminate", takefocus=True, maximum=100, value=0)
self.client_loading.grid(row=1,column=1,padx=20,pady=20)
self.client_loaded = False
# Restart loading clients and sites
self.thread_client_list = threading.Thread(target=self.client_list)
self.thread_client_list.start()
self.thread_get_sites = threading.Thread(target=self.get_sites)
self.thread_get_sites.start()

# If direction is True, move forward
if direction:
self.client_loading['value'] += 25
# Change direction when reaching the end
if self.client_loading['value'] + 25 > 100:
direction = False
# Destroy the loading bar when everything is loaded
if self.client_loaded:
if self.state == 3:
self.client_loading_label["text"] = "Error: no internet connection\nReload?"
self.client_loading.destroy()
self.client_loading = tkinter.Button(self.general_info_frame, text="Reload clients", command= lambda: self.start_progress_bar(True))
self.client_loading.grid(row=1,column=1,padx=20,pady=20)
self.is_progress_bar_running = False
else:
self.client_loading_label["text"] = "Clients loaded!\nReload?"
self.client_loading.destroy()
self.client_loading = tkinter.Button(self.general_info_frame, text="Reload clients", command= lambda: self.start_progress_bar(True))
self.client_loading.grid(row=1,column=1,padx=20,pady=20)
self.is_progress_bar_running = False
# Otherwise, start again
else:
self.is_progress_bar_running = False
self.window.after(400, lambda: self.start_progress_bar(direction))
# Otherwise, move backward
else:
self.client_loading['value'] -= 25
# Change direction when reaching the end
if self.client_loading['value'] - 25 < 0:
direction = True
# Destroy the loading bar when everything is loaded
if self.client_loaded:
self.client_loading_label["text"] = "Clients loaded!\nReload?"
self.client_loading.destroy()
self.client_loading = tkinter.Button(self.general_info_frame, text="Reload clients", command= lambda: self.start_progress_bar(True))
self.client_loading.grid(row=1,column=1,padx=20,pady=20)
self.is_progress_bar_running = False
# Otherwise, start again
else:
self.is_progress_bar_running = False
self.window.after(400, lambda: self.start_progress_bar(direction))

def show_gui(self):
"""Function that displays the entire interface
"""
self.window = tkinter.Tk()
self.window.title("Synchroteam Task Creation Form")

self.frame = tkinter.Frame(self.window)
self.frame.pack()

# User information
self.general_info_frame = tkinter.LabelFrame(self.frame, text="General Information")
self.general_info_frame.grid(row=0,column=0,padx=20,pady=20)

# Client loading bar
self.client_loading_label = tkinter.Label(self.general_info_frame, text="Loading clients in progress...")
self.client_loading_label.grid(row=0, column=0)
self.client_loading = ttk.Progressbar(self.general_info_frame, orient="horizontal", length=100, mode="indeterminate", takefocus=True, maximum=100, value=0)
self.client_loading.grid(row=1,column=0,padx=20,pady=20)

for widget in self.general_info_frame.winfo_children():
widget.grid_configure(padx=10, pady=5)

if not self.client_loaded:
# Start the loading bar until everything is loaded
self.window.after(400, lambda: self.start_progress_bar(True))

# Start the loop
self.window.mainloop()

if __name__ == "__main__":
main = Main()
< /code>
Und hier ist der Fehler, den ich erhalte: < /p>
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\Utilisateur\AppData\Local\Programs\Python\Python312\Lib\tkinter\__init__.py", line 1962, in __call__
return self.func(*args)
^^^^^^^^^^^^^^^^
File "c:\Users\Utilisateur\Documents\Batitech\API\test.py", line 97, in
self.client_loading = tkinter.Button(self.general_info_frame, text="Reload clients", command= lambda: self.start_progress_bar(True))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\Utilisateur\Documents\Batitech\API\test.py", line 59, in start_progress_bar
self.thread_client_list.start()
File "C:\Users\Utilisateur\AppData\Local\Programs\Python\Python312\Lib\threading.py", line 992, in start
_start_new_thread(self._bootstrap, ())
RuntimeError: can't create new thread at interpreter shutdown
< /code>
Der Fehler findet nicht statt, wenn ich das Programm starte. Die Clients und die Websites werden beim Start gut geladen, aber wenn ich versuche, den Client während des Klickens auf den Taste Self zu laden.>

Top