import threading
print(threading.activeCount())
печатает 1 при запуске из командной строки, 2 при запуске из режима ожидания.Таким образом, ваш цикл
while threading.activeCount() > 1:
time.sleep(1)
pl( time.time() )
завершится в консоли, но продолжится в режиме ожидания.
Чтобы устранить проблему в опубликованном коде, добавьте что-то вроде
initial_threads = threading.activeCount()
после импорта измените заголовок цикла на
while threading.activeCount() > initial_threads:
. С этим изменением код проходит 30 циклов и останавливается с «все сделано!».Я добавил это в свой список различий консоли Python и простоя, которые необходимо задокументировать.