При import код повторно не запускается

Код на python:

import time
import datetime

while True:
    start = time.time()
    time_start = datetime.datetime.now()

    import file1

    end = time.time() - start
    print(time_start)
    time.sleep(86400 - end)

Кто знает почему после прохождения задержки не срабатывает код из import file1, после задержки time.sleep(86400 - end) получаю только print(time_start)? Если вместо импорта вставить прям весь код из файла file1, то все ок. Для примера привел импорт только одного файла, но у меня их много и код вставлять из каждого неудобно. Код в файлах не в классах


Ответы (1 шт):

Автор решения: Эникейщик

Я знаю, почему не срабатывает. Потому что импорт осуществляется только один раз. Все импортированные модули хранятся в sys.modules, и если какой-то модуль уже был импортирован, то второго импорта не происходит.

Можно, конечно, использовать importlib.reload(module) (в питоне 2 просто reload()), но сама идея того, что программа основана на выполнении кода импортируемых модулей прямо во время импорта, мне кажется неправильной.

→ Ссылка