Итак, я сделал небольшое окно холста с tkinter, в котором есть 2 кнопки: одна - кнопка запуска, другая - кнопка остановки. (Я прикреплю код tkinter графического интерфейса ниже. Я не буду добавлять часть Selenium, потому что ...

1
Aaron Cloud 7 Янв 2021 в 07:55

1 ответ

Лучший ответ

Вы не можете остановить задачу, созданную threading.Thread(). Вместо этого используйте subprocess:

import subprocess

...

proc = None

def start_report():
    global proc
    if proc and not proc.poll():
        print("process is still running")
        return
    proc = subprocess.Popen([sys.executable, "Reporting_backbone.py"])
    start_text.set("Armed!")

def stop_craigslist():
    global proc
    if proc:
        proc.terminate()
        proc = None
        stop_text.set('Stopped')

...
start_btn = tk.Button(root, ..., command=start_report, ...)
...
stop_btn = tk.Button(root, ..., command=stop_craigslist, ...)
...
0
acw1668 7 Янв 2021 в 06:05