Возникает при запуске Jupyter Server в кастомном Docker-образе.
В логах контейнера появляется сообщение:
Traceback (most recent call last):File ".../jupyter_server/application.py", line ..., in initializeself.kernel_manager = self.kernel_manager_class(...)ImportError: cannot import name 'MlspaceAsyncMappingKernelManager' from 'cloudru_extension.services.kernels.kernelmanager'------------------------------------------------------------kernel_manager_class could not be imported
В базовом образе Jupyter Server файл конфигурации /home/jovyan/.jupyter/jupyter_server_config.py содержит строку:
c.ServerApp.kernel_manager_class = 'cloudru_extension.services.kernels.kernelmanager.MlspaceAsyncMappingKernelManager'
Эта настройка указывает Jupyter Server использовать расширенный менеджер ядер MlspaceAsyncMappingKernelManager из системного пакета cloudru_extension.
При сборке кастомного Docker‑образа на основе базового, если пакет cloudru_extension был удален или перезаписан, конфигурационный файл остается без изменений. В результате Jupyter Server не может импортировать указанный класс и аварийно завершает инициализацию.
Пакет cloudru_extension предоставляет:
мониторинг количества открытых файлов, чтобы избежать ошибок EMFILE;
оптимизацию использования памяти и предотвращения OOM‑падений;
уведомления о системных событиях;
работу client_lib и прокси‑серверов.
Выберите один из трех вариантов в зависимости от ваших целей.
Убедитесь, что пакет не удаляется при сборке кастомного образа:
Не используйте флаг --force-reinstall при установке зависимостей — он может перезаписать системные пакеты.
Избегайте глобального обновления зависимостей через pip install -U . — это может удалить cloudru_extension.
При добавлении новых библиотек явно перечисляйте их в pip install, не заменяя весь набор зависимостей.
Если пакет уже удален, его можно восстановить из рабочего экземпляра:
Запустите временный Jupyter Server на том же базовом образе, что использовался при построении кастомного.
В терминале внутри контейнера выполните:
/home/user/.mlspace_pack
Скрипт восстановит системные компоненты, включая cloudru_extension.
Скопируйте восстановленный пакет в свой кастомный образ.
Например, через docker cp или архивацию в site-packages.
Пересоберите образ и запустите Jupyter Server.
После восстановления пакета не требуется менять jupyter_server_config.py.
Если пакет cloudru_extension вам не нужен:
Откройте файл конфигурации jupyter_server_config.py.
Удалите строку:
c.ServerApp.kernel_manager_class = 'cloudru_extension.services.kernels.kernelmanager.MlspaceAsyncMappingKernelManager'
Пересоберите Docker‑образ и запустите Jupyter Server.
Без cloudru_extension отключаются защита от OOM, мониторинг открытых файлов и интеграция с client_lib. Применяйте этот вариант только при уверенности, что данные возможности не критичны для ваших задач.