Ядро ноутбука Jupyter аварийно завершает работу при импорте xarray

Я пытаюсь импортировать xarray в свой блокнот Jupyter, и когда я запускаю ячейку

import xarray

появляется следующая ошибка: «Ядро дало сбой при выполнении кода в текущей или предыдущей ячейке. Просмотрите код в ячейках, чтобы определить возможную причину сбоя. Нажмите здесь для дополнительной информации. Для получения более подробной информации просмотрите журнал Jupyter».

Я несколько раз пытался перезапустить ядро, удалить и переустановить xarray и даже увеличить память, добавив ячейку

import os
os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE"

перед импортом, но ничего из этого не сработало. Я обнаружил в Интернете, что другие зависимые пакеты также могут привести к падению пакета, и они предлагают запустить новую среду. Есть ли способ решить эту проблему без запуска новой среды?

Я не могу воспроизвести ошибку. Есть ли в журналах Jupyter какие-либо подробности во время сбоя ядра? и проверьте, не заполнена ли ваша память

chickity china chinese chicken 20.06.2024 02:38

@chickitychinachinesechicken В журналах Jupyter указано: 19:53:28.248 [ошибка] Удаление сеанса, поскольку процесс ядра завершился. Код выхода: не определено, Причина: 19:53:28.276 [информация] Ячейка 1 завершена за -1718844806.403 с (начало: 1718844806403, конец: не определено). ). Память не заполнена, она на 25%.

Samuel Jaramillo 20.06.2024 02:54

Как вы устанавливаете пакет xarray? Вы пишете код напрямую в блокноте или используете IDE? Ваш Jupyter работает локально в вашей системе или в облаке? как запустить свой ноутбук из командной строки терминала?

chickity china chinese chicken 20.06.2024 04:12

@chickitychinachinesechicken Я пробовал установить xarray с терминала, используя pip install xarray, python3 -m pip install xarray, python3 -m pip install "xarray[complete]", все они выдали одну и ту же ошибку. Я пишу код в блокноте в VScode. Я не знаю, работает ли VScode локально или в облаке, но я бы сказал, что он работает локально. Блокнот запускается в VScode.

Samuel Jaramillo 20.06.2024 19:27

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

chickity china chinese chicken 21.06.2024 07:22

Пытаясь воспроизвести вашу проблему, используя pip для установки xarray на моем компьютере с Windows 11, xarray извлекает 9 зависимостей, включая numpy и pandas, всего 160 MB. Я бы предложил создать виртуальную среду (virtualenv), чтобы изолировать общесистемную конфигурацию pip от вашего jupyter notebook проекта, чтобы предотвратить запуск слишком большого количества зависимостей при запуске блокнота Jupyter. Сначала просто установите xarray для успешной установки, а затем переместите его в Jupyter. блокнот. При запуске сценария только с import xarray он потребляет 70 MB ОЗУ на моей машине...

chickity china chinese chicken 21.06.2024 07:22

@chickitychinachinesechicken Я создал виртуальную среду, и она не работает. Я думаю, мне нужно увеличить доступную память, но то, что я пробовал, не сработало. Я попробовал добавить sys.setrecursionlimit(100000), но ядро ​​все равно вылетает. Есть ли другой способ увеличить память? (Я работаю на Mac).

Samuel Jaramillo 21.06.2024 14:56

хм, не уверен, можно попробовать Ядро Jupyter Notebook продолжает умирать - мало памяти?

chickity china chinese chicken 21.06.2024 22:51

@chickitychinachinesechicken Перепробовав все, что нашел в Интернете, я решил эту проблему. Судя по всему, работает, если я устанавливаю его с кондой, т. е. conda install "xarray[complete]" работает (не спрашивайте почему). До того, как я устанавливал его с помощью pip install "xarray[complete]"

Samuel Jaramillo 25.06.2024 15:16

Отличное обновление @samuel-jaramillo, спасибо, что поделились подробностями, которые вы использовали для решения проблемы. Рассмотрите возможность опубликовать его в качестве ответа ниже и принять его, поскольку другие пользователи, столкнувшиеся с той же проблемой, могут ссылаться на него, и было бы полезно закрыть этот вопрос из очереди.

chickity china chinese chicken 25.06.2024 20:14
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
10
95
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Перепробовав все, что нашел в Интернете, я решил эту проблему. Ни один из способов увеличения ограничений оперативной памяти для Jupyter Notebook не работал. Однако я установил xarray с conda, т. е. conda install "xarray[complete]" он работает. Судя по всему, это связано с некоторыми предпосылками модуля xarray. Раньше я устанавливал его с помощью pip install "xarray[complete]".

Anaconda/conda способна вносить более мощные изменения в вашу систему и на более высоких уровнях, чем это разрешено pip. Это может быть как-то связано с этим.

Wayne 25.06.2024 21:07

Другие вопросы по теме