Консоль IPython в Spyder очень медленно в Anaconda - PullRequest
0 голосов
/ 19 ноября 2018

Я пробую Anaconda / Spyder после использования стандартной установки Python / IDLE в течение нескольких лет.Консоль (и обозреватель переменных) становится все медленнее во время каждого рабочего сеанса, с каждым скриптом и интерактивной командой, которые я запускаю.В конце концов, требуется несколько минут, чтобы получить ответ на простые команды, такие как печать, а затем он перестает отвечать полностью, и я выключаю его.Это довольно разрушительно для моей работы.

Mac OSX 10.13.6

conda version : 4.5.11
conda-build version : 3.15.1
python version : 3.7.0.final.0

qt 5.9.6
spyder 3.3.1 
ipython 7.1.1

Я часто использую matplotlib.По возможности я использую plt.ioff () в начале скрипта и / или plt.close ('all') в конце.Полное отключение поддержки matplotlib в настройках не помогает, и в любом случае это не постоянное исправление.Python не использует почти все мои CPU или RAM.

Ответы [ 4 ]

0 голосов
/ 30 марта 2019

вам не нужно понижать версию всего шпиона.Для меня это сработало с понижением этих двух: conda install ipython=6.4.0 conda install ipykernel=4.10.0

0 голосов
/ 29 ноября 2018

@ Ответ JJR4 не работает для меня (кажется, работает для других).Другой обходной путь - ввести %connect_info магическую команду в консоль IPython Spyder, которая отобразит информацию JSON для подключения другой консоли к ядру.

Вывод магической команды объясняет, как подключиться, но в основном естьтри варианта.

Вставьте вышеуказанный JSON в файл и соединитесь с:

$> jupyter <app> --existing <file>

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

$> jupyter <app> --existing <kernel>.json

или даже просто:

$> jupyter <app> --existing

если это самое последнее ядро ​​Jupyter, которое вы запустили.

Я обычно использую qtconsole в качестве приложения.Как только вы введете выбранный метод подключения в командную строку, откроется новая консоль, которая подключена к тому же ядру, что и консоль в Spyder.По какой-то причине новая консоль не запаздывает, даже если консоль Spyder делает.

Введите все в новой консоли, даже runfile()

Надеюсь, это поможет!

ОБНОВЛЕНИЕ: Переход на ipykernel версии 4.10, кажется, решил эту проблему для меня.Благодаря Карлосу Кордобе - см. Разговор GitHub в ссылке ниже.

0 голосов
/ 02 декабря 2018

Насколько я выяснил, проблема, похоже, в последнем основном выпуске ядра ipython. Прикрепление версии ipykernel к 4.10.0 решило это для меня. Для этого добавьте строку, содержащую ipykernel 4.*, в файл ~/anaconda3/conda-meta/pinned. Создайте файл, если он еще не существует. Тогда conda update ipykernel, который фактически понизится до 4.10.0. Работал на меня!

0 голосов
/ 21 ноября 2018

Так что это не совсем удовлетворительное решение, но кажется разумным временным решением. Если вы понизите версию spyder до 3.1.X, вы сможете использовать консоль python, а не консоль Ipython, и мне кажется, это работает. Для этого просто запустите:

conda install spyder=3.1

в терминале, когда выбрана ваша среда. Это не идеально, потому что разработчики удалили консоль python по определенной причине, упомянутой в этом вопросе, Как добавить консоль python в spyder . Кроме того, понижение этого уровня может привести к непредвиденным последствиям для других пакетов, которые использует ваш код, и может вызвать другие проблемы, но пока это единственное решение, которое мне удалось найти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...