Python-Ausnahme in Thread Thread-1 (wird höchstwahrscheinlich beim Herunterfahren des Interpreters ausgelöst)?

Mein Freund und ich haben an einem großen Projekt gearbeitet, um Python und PyGame zu lernen und Spaß zu haben. Im Grunde ist es eine KI-Simulation eines kleinen Dorfes. Wir wollten einen Tag / Nacht-Zyklus, also fand ich eine gute Möglichkeit, die Farbe einer gesamten Oberfläche mithilfe von Numpy zu ändern (speziell das Tutorial zum Überblenden).http://www.pygame.org/docs/tut/surfarray/SurfarrayIntro.html

Ich habe es in den Code implementiert und es FUNKTIONIERT, ist aber extrem langsam, wie <1 fps langsam. Also schaue ich in Threading (weil ich es irgendwann hinzufügen wollte) und fand diese Seite auf Queues -Informationen zum Warteschlangenmodul in Python (wie es ausgeführt wird)

Ich verbringe ungefähr 15 Minuten damit, ein Basissystem zu erstellen, aber sobald ich es ausführe, wird das Fenster geschlossen und es wird angezeigt

Exception in thread Thread-1 (most likely raised during interpreter shutdown):

EDIT: Dies ist buchstäblich alles, was es sagt, kein Traceback-Fehler

Ich weiß nicht, was ich falsch mache, aber ich gehe davon aus, dass mir etwas Einfaches fehlt. Ich habe die notwendigen Teile des Codes unten hinzugefügt.

q_in = Queue.Queue(maxsize=0)

q_out = Queue.Queue(maxsize=0)

def run():    #Here is where the main stuff happens
    #There is more here I am just showing the essential parts
    while True:
        a = abs(abs(world.degree-180)-180)/400.

        #Process world
        world.process(time_passed_seconds)

        blank_surface = pygame.Surface(SCREEN_SIZE)
        world.render(blank_surface)    #The world class renders everything onto a blank surface
        q_in.put((blank_surface, a))
        screen.blit(q_out.get(), (0,0))

def DayNight():
    while True:
        blank_surface, a = q_in.get()
        imgarray = surfarray.array3d(blank_surface)  # Here is where the new numpy       stuff starts (AKA Day/Night cycle)
        src = N.array(imgarray)
        dest = N.zeros(imgarray.shape)
        dest[:] = 20, 30, 120
        diff = (dest - src) * a
        xfade = src + diff.astype(N.int)

        surfarray.blit_array(blank_surface, xfade)
        q_out.put(blank_surface)
        q_in.task_done()

def main():
    MainT = threading.Thread(target=run)
    MainT.daemon = True
    MainT.start()

    DN = threading.Thread(target=DayNight)
    DN.daemon = True
    DN.start()

    q_in.join()
    q_out.join()

Wenn jemand helfen könnte, wäre es sehr dankbar. Vielen Dank.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage