我编写了这段代码,基本上打开了一个用Tkinter制作的GUI,并同时运行调度器,只要我在PyCharm上运行这段代码,每件事情都能正常工作。
现在,如果我使用"PyInstaller“将代码转换为exe,在运行代码之后,GUI会一次又一次地打开,直到我终止任务。
from multiprocessing import Process
import tkinter as tk
# IMPORTING SCHEDULER AND ADDREDDITACCOUNT GUI
from app.scheduler import schedule_upload
from app.addRedditAccount import AddRedditAccount
if __name__ == "__main__":
window = tk.Tk()
AddRedditAccount(window)
schedule = Process(name='schedule', target=schedule_upload)
schedule.start()
window.mainloop()发布于 2022-10-24 23:47:31
之所以发生这种情况,是因为您试图在可执行文件中使用multiprocessing。我假设您也在使用Windows操作系统。您所需要做的就是从freeze_support模块添加一个对multiprocessing的调用。
例如:
from multiprocessing import Process, freeze_support # <-- added this
import tkinter as tk
# IMPORTING SCHEDULER AND ADDREDDITACCOUNT GUI
from app.scheduler import schedule_upload
from app.addRedditAccount import AddRedditAccount
freeze_support() # <--- added this
if __name__ == "__main__":
window = tk.Tk()
AddRedditAccount(window)
schedule = Process(name='schedule', target=schedule_upload)
schedule.start()
window.mainloop()重新编译,您的可执行文件应该可以正常工作。
https://stackoverflow.com/questions/74186441
复制相似问题