Импорт модулей во время выполнения, python

#python

#python

Вопрос:

Я пытаюсь импортировать модуль, изменить код модуля и повторно импортировать (горячая перезагрузка) этот же модуль с новыми обновлениями без фактической остановки и перезапуска скрипта с использованием модуля.

Я знаю о reload методе из importlib библиотеки, но, похоже, он не делает то, что я хочу.

Итак, мой текущий план состоит в том, чтобы программно повторно импортировать этот модуль после внесения изменений. Что-то вроде этого:

 importlib.import_module('my_module')
 

но в чем я не уверен, так это в том, что если импортировать его таким образом, он фактически перечитает содержимое модуля, чтобы получать обновления. Если нет, не могли бы вы указать способ достижения этой цели?

Комментарии:

1. importlib.import_module('my_module') не будет reload модуля. Это то же __import__ самое, что и, но importlib рекомендуется. И вы, конечно, не reload должны использовать модули во время выполнения

2. Спасибо @han solo, но есть ли причина, по которой я не reload должен использовать модули во время выполнения?

3. Допустим, у вас есть класс Foo из модуля foo , загруженный где-то, и на него Foo ссылается другой код. Теперь вы перезагружаетесь foo , но предыдущей ссылки нет reloaded , и она используется некоторым кодом. Таким образом, вы получаете zombies . Я не уверен, если я объяснил себя ясно, позвольте мне посмотреть, смогу ли я найти какие-нибудь ссылки