#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
. Я не уверен, если я объяснил себя ясно, позвольте мне посмотреть, смогу ли я найти какие-нибудь ссылки