PyCharm долгое время висит в консоли iPython с большими данными
Я видел несколько сообщений PyCharm медленный, но у меня проблема, которая кажется слишком медленной даже по сравнению с обычной работой.
У меня есть большой набор данных в фрейме pandas (чтение из csv файла 440 МБ).
Когда я использую консоль ipython внутри PyCharm, каждый раз, когда я пытаюсь обрабатывать эти данные, скажем, я пишу my_data.
, он просто висит там около 30 секунд.
Я действительно не понимаю, что происходит, но, похоже, PyCharm проделывает все данные, чтобы найти умное автоматическое завершение (что очень глупо делать).
Как отключить это поведение?
Ответы
Ответ 1
Я тоже сталкивался с такой же проблемой в течение долгого времени: отладка PyCharm чрезвычайно медленная при использовании больших pandas данных. Если я хочу просмотреть содержимое фрейма данных в часах, это часто дает мне время ожидания после ожидания минут, поэтому я в основном прекратил использовать отладку при работе с dataframes
То, что я только что нашел, это то, что под
Файлы → Настройки → Сборка, выполнение, развертывание → Отладчик Python
Вы должны включить флаг "Совместимый с Gevent"
Я также включил все остальные флаги в этом окне (собирайте информацию о типах времени rum, присоедините подпроцесс и совместимость с PyQt). Но флаг, совместимый с Gevent, действительно выполняет эту работу для меня: он внезапно мгновенно дает мне содержимое dataframe в часах отладчика.
Я использую PyCharm verion 2016.2.3
Ответ 2
Если вы не возражаете полностью отключить автозаполнение, я думаю, что это должно работать:
Перейдите к File > Settings (Ctrl+Alt+S) > IDE Settings > Editor > Code Completion
И выключите Insert selected variant by typing dot, space, etc.
Ответ 3
В зависимости от того, насколько вы справляетесь с данными, могут пострадать пределы памяти. Ipython помнит каждый In []: и Out []:.
In
- это список, который добавляется для каждого, который вы думаете.
Out
- это еще один список, который добавляется к.
Итак, если у вас очень большой массив, с которым вы работаете в In
или Out
, вы получите несколько копий массива.