Проблема может быть разбита так просто: если я использую многопоточность для запуска Thread, а затем запускаю свой python GUI, он работает нормально. Но если я заменим на eventlet и использую eventlet.spawn, а затем запустлю мой графический интерфейс, графический интерфейс все равно будет работать нормально, но функция, вызываемая eventlet.spawn, не будет выполняться. (по той причине, что я настраивал клиент-серверы на разных машинах, Thread будет вызывать проблемы, а eventlet работает, поэтому я использую eventlet)
Для eventlet, я обезьяна залатала его сверху
import eventlet
eventlet.monkey_patch()
Я пробовал eventlet.monkey_patch (thread = False) все другие настройки, предложенные в некоторых блогах Google, просто не будет работать
import eventlet
import tkinter as tk
from tkinter import *
eventlet.monkey_patch()
from lib1 import func1
eventlet.spawn(func1) #while loop producing logs
root=tk.Tk()
Button(root,text='print',command=lambda:print('hello')).pack()
root.mainloop()
в принципе, если я заменю eventlet на Thread, тогда все в порядке, но тогда это не то, что я хотел, так как Thread вызывает проблему с клиент-сервером. С приведенным выше кодом func1 не будет создавать журналы, которые он должен производить. кнопка печати в графическом интерфейсе работает нормально.
Я ожидал, что func1 выполнится правильно.