July 21, 2022

Комфортные настройки для начала работы с Jupyter в Unix

Начну с того, что Jupyter лучше ставить в основное окружение, а для всех остальных виртуальных сред создавать kernel-ы, которые впоследствии подключать к конкретному ноутбуку. Тогда для старта будет достаточно запустить терминал и набрать:

jupyter lab (или jupyter notebook)

Удобный старт/стоп

Чтобы основное окружение было активно при старте терминала (если python установлен корректно, этого делать не придется), можно прописать в файле .bash_profile (иногда в других, например, .bashrc в зависимости от вида системы), находящемся в пользовательской директории (если его нет, создайте) команду активации окружения:

source /Users/19036412/Documents/python/envs/main/bin/activate

Возможно, команда активации будет другая (подробнее читай здесь)

Для останова Jupyter можно из другого окна терминала набрать:

jupyter lab stop (или jupyter notebook stop)

Однако не всегда удобно, что старт Jupyter блокирует командную строку, чтобы этого избежать можно запустить среду в фоновом режиме (& после команды) и указать, чтобы стандартный вывод и вывод ошибок осуществлялся в несуществующее устройство (&> /dev/null):

jupyter lab &> /dev/null & (или jupyter notebook &> /dev/null &)

Еще комфортнее станет работать после настройки псевдонимов для команд старта и останова все в том же .bash_profile (например):

alias ejup='jupyter lab stop'
alias sjup='jupyter lab &> /dev/null &'

Настройка Kernel-ов

Для создания kernel-а в виртуальную среду:

устанавливаем пакет ipykernel:

pip install ipykernel

сохраняем kernel:

python -m ipykernel install --user --name имя_среды --display-name "отображаемой_имя"

--name используется для внутренних нужд, а --display-name отображается в меню выбора ядер. Если задать только display-name, то папка ядра будет названа python3 (на Linux находится внутри .local/share/jupyter/kernels) и станет перезаписываться для каждого нового ядра. Если же задать только --name, то этим именем будет названа папка для хранения информации о ядре и оно будет отображаться в меню выбора ядер. Поэтому без особой нужды задавайте только параметр --name.

Полезные ссылки:

  1. Памятка для настройки виртуальных окружений и kernel в Jupyter
  2. Чек-лист для настройки окружения на Python
  3. Виртуальные окружения в Python
  4. Spyder и виртуальные окружения Python