15,629
社区成员




以下是一个简单的tkinter界面示例,有大佬打包成功后能正常运行的吗?
import sys
import os
from loky import get_reusable_executor
import tkinter as tk
from tkinter.scrolledtext import ScrolledText
def func_async(i):
pid = os.getpid()
return (2 * i, pid)
def run_tests():
f1 = test_1()
f2 = test_2()
f3 = test_3()
main_pid = os.getpid()
results = [f1.result(), f2.result(), f3.result()]
pids = [pid for _, pid in results]
output = []
for i, (val, pid) in enumerate(results):
assert val == 2 * (i + 1)
assert pid != main_pid
output.append(f"Job {i + 1}: value={val}, pid={pid}")
output.append(f"All the computation were run in a single `ProcessPoolExecutor` with worker pid={pids[0]}")
return "\n".join(output)
def test_1():
executor = get_reusable_executor(max_workers=3)
return executor.submit(func_async, 1)
def test_2():
executor = get_reusable_executor(max_workers=3)
return executor.submit(func_async, 2)
def test_3():
executor = get_reusable_executor(max_workers=3)
return executor.submit(func_async, 3)
class MyApp(tk.Tk):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.title("Tkinter Test Runner")
self.geometry("400x300")
self.text_edit = ScrolledText(self, wrap=tk.WORD)
self.text_edit.pack(expand=True, fill=tk.BOTH)
btn = tk.Button(self, text='Run Tests', command=self.on_click)
btn.pack()
def on_click(self):
output = run_tests()
self.text_edit.delete(1.0, tk.END)
self.text_edit.insert(tk.END, output)
if __name__ == '__main__':
import multiprocessing as mp
mp.freeze_support()
app = MyApp()
app.mainloop()