Найти - Пользователи
Полная версия: __import__ & reload()
Начало » Python для новичков » __import__ & reload()
1
goblin_maks
как быть.. использую следующую конструкцию для выполнения тех или инных модулей:
        for i in toolName:


if (sys.modules.has_key(i)):
module = reload(sys.modules[i])
else:
module = __import__(i, globals())
это часть того что должно выполнится в потоке. Если прервать поток и импорт или релоад модуля до конца не выполнится, то при следующем старте потока ни импорт ни релоад не выполняются..как с этим быть и как бороться..
Андрей Светлов
не прибивать поток по terminate. Если нужно - выставлять флаг и проверять его из потока.
import выставляет import lock, и если в этот момент поток аварийно завершить - lock никогда не будет снят.
goblin_maks
спасибо..с утра буду пробовать
cybergrind
или залочить код для импорт\релоад и прибивания потока одним локом, меньше возни с проверками
Андрей Светлов
прибивание - штука опасная и вредная вообще, а не только для импорта.
Я видел много проблем, связанных с аварийным завершением потока.
И считаю, что если запущенный поток потом где-то не join - это серьезная ошибка в архитектуре, которая рано или поздно себя проявит.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB