pycharm_logo

PyCharm + Locust + gevent: бесконечный «Collecting data…» в дебагере.

Если вы используете Locust с gevent и внезапно столкнулись с тем, что в новых версиях PyCharm дебаггер зависает на сообщении “Collecting data…”, а переменные не отображаются, то вы не одиноки. Особенно часто проблема проявляется в новых версиях IDE, тогда как в старых всё работает без нареканий.

Например, сценарий может выглядеть так:

  • В PyCharm 2023.x всё работает нормально (у меня всё прекрасно работает)
  • В PyCharm 2025.x и выше – дебаггер запускается, но бесконечно показывает Collecting data... Отладку выполнить невозможно!👺
  • GEVENT_SUPPORT=1 уже включён, Gevent compatible тоже настроен, но результата нет

Я было отчаялся, но внезапно решение нашлось!

Почему это происходит

Проблема связана не с Locust и не с вашим кодом, а с новым механизмом работы дебаггера в PyCharm.

В свежих версиях JetBrains внедрили новый low-impact monitoring API для Python debugger. Он должен был снизить нагрузку на отладку и сделать сбор данных более «лёгким», однако в связке с gevent и monkey patching появляются конфликты.

В результате debugger пытается бесконечно собрать состояние greenlet’ов, потоков и объектов, из-за чего интерфейс зависает на этапе:

Collecting data...

Решение

Весьма простое и быстрое!

Нужно отключить экспериментальный механизм low-impact monitoring.

Шаг 1. Открываем Registry

В PyCharm:

Help → Find Action → Registry

Шаг 2. Находим настройку

Ищем параметр:

python.debug.low.impact.monitoring.api

Шаг 3. Отключаем её

Снимаем галочку или переключаем значение в false.

После этого перезапускаем debug session.

Дополнительные рекомендации

1. Включить поддержку gevent в дебаггере

Settings → Build, Execution, Deployment → Python Debugger → Gevent compatible

Опция должна быть включена.

2. Не дублируем gevent support

Частая ошибка – одновременно использовать:

GEVENT_SUPPORT=1

и включённый Gevent compatible в настройках IDE.

Обычно достаточно одного механизма. На практике удобнее оставить поддержку через интерфейс PyCharm.

3. Если всё ещё есть проблемы

Попробуем:

  • перезапустить PyCharm;
  • очистить invalidate caches;
  • временно проверить поведение в более старой версии IDE;
  • обновить gevent, greenlet и locust.

Итог

Если ваш debugger в PyCharm бесконечно висит на Collecting data... при работе с Locust и gevent, скорее всего, проблема в новом debugger monitoring API.

Самое простое и рабочее решение:

Registry → python.debug.low.impact.monitoring.api → OFF

После отключения отладка снова начинает нормально показывать переменные, а Collecting data... исчезает.

Это сэкономит много нервов и несколько часов бессмысленного поиска проблемы в собственном коде 😄

Жми класс




0

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Привет!

🎸 Зачем этот сайт вообще нужен?

Чтобы не потеряться в потоке одинаковой музыки и вылизанных блогов.

На самом деле сделал по фану, чтобы освоить навык разработки простеньких сайтов без тонн яваскрипта и прочих приблуд.

Я делаю то, чего хочу сам: честно, грубо, громко и по-своему.

Здесь — всё моё: музыка, схемы, мысли, эксперименты, удачи и провалы.

Это место для тех, кто не ищет идеала, а ищет настоящее. АУФ!