python sleep == Блокировка IDE
Вопрос
Когда мой скрипт отключается на 50 секунд, моя IDE блокируется, что очень раздражает.Я не могу переключать вкладки, просматривать свой исходный код, вводить код и т.д.Это происходит в pylde и pyscripter, я не пробовал другие IDE.Что я могу сделать, чтобы исправить это?я на самом деле делаю
for i in range(0, timeInSeconds): time.sleep(1)
надеясь, что IDE будет обновляться один раз в секунду, но это выглядит не так.Что я могу сделать, чтобы исправить это?
Решение
Я предполагаю, что вы запускаете свой код из IDE?
Вероятно, ваша IDE блокируется во время выполнения вашего кода.Поищите какую-нибудь настройку, которая могла бы контролировать это поведение, в противном случае, я думаю, вашим единственным выбором было бы сменить IDE.(Или запустите свой код из-за пределов IDE)
Другие советы
Можете ли вы настроить запуск вашего скрипта извне?Я не знаю о конкретных IDE, но я бы попытался создать другой процесс для отлаженного скрипта и не запускать их в IDE.Если это не помогает, то это проблема IDE.
Проблема в том, что ваша IDE не python.Я не так часто использую sleep, я только что попробовал его на Эрик ИДЕ и вы можете использование ваша IDE, пока ваш код запущен и находится в спящем режиме.Если вы не можете настроить свою IDE на это, а вам это нужно, подумайте о смене IDE или о запуске вашего кода с консоли.
Лично я считаю, что вам никогда не следует выполнять код в том же цикле, что и ваша IDE.Поскольку большинство IDE запускают основной цикл GUI, блокировка этого приведет к полному зависанию пользовательского интерфейса.Это просто напрашивается на неприятности, и я бы удалил отчеты об ошибках в обеих этих IDE.
Я подозреваю, что проблема в том, что IDE находится в цикле, ожидая завершения скрипта.
Само по себе это не является проблемой при условии, что любые пользовательские сообщения все еще обрабатываются, пока IDE находится в этом цикле.
Но что, как я подозреваю, в данном случае идет не так, так это то, что IDE просто запускает цикл без обработки и сообщений, и, следовательно, пользовательский интерфейс, похоже, заблокирован.
IDE необходимо было бы изменить, чтобы либо обрабатывать сообщения GUI во время цикла, либо, в качестве альтернативы, ей необходимо создать поток для запуска скрипта.Затем поток будет выполняться в фоновом режиме, а графический интерфейс останется отзывчивым.
Например , в Zeus для Windows IDE использует подход фонового потока, и у нее нет этой проблемы.