Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Technical Portfolio
GitHub & GitVerse Pages

1. Настройка рабочего пространства

SQL Lab in JupyterLab

Data & BI Analyst

Забегая вперед отмечу, что чистый файл зависимостей environment.yml создать пришлось. Но, во-первых, на старте его не было, а во-вторых, это гайд как создать с нуля. Поехали.

Простое решение: создать новое окружение на базе Anaconda Metapackage – готового набора популярных библиотек для Data Science, Data Analysis и Machine Learning с идеальной совместимостью версий.

# Anaconda Prompt: (base) C:\Users\YOUR_USERNAME>

# Создаем окружение с базовым набором Anaconda Metapackage
conda create --name ds-book anaconda

# Активируем его
conda activate ds-book

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


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

1.1. Создание изолированного окружения

# -- Этап 1 -- Anaconda Prompt: (base) C:\Users\YOUR_USERNAME>
# Создание conda-окружения и установка базовых пакетов

conda create --name ds-book -c conda-forge python=3.12 jupyterlab=4.4.7 ^
  notebook=7.4.5 pandas numpy matplotlib seaborn scikit-learn ^
  python-dotenv cryptography sqlalchemy -y

# Jupyter Lab -- конкретно версии 4.4.7 чтобы работал jupyterlab_myst
# Jupyter Notebook -- 7.4.5 (по той же причине)
# Python -- 3.12.12 именно эта версия входит в сбалансированный
#  Anaconda Metapackage (Distribution) – решил не экспериментировать 

conda activate ds-book
ПакетВерсия в проектеНазначение
python=3.12.123.12.12Ядро языка программирования
jupyterlab=4.4.74.4.7Интерактивная среда разработки
notebook=7.4.57.4.5Интерактивная среда разработки
pandas3.0.3Классический анализ данных. Базовый инструмент обработки таблиц (DataFrames)
numpy2.5.1Математические вычисления
matplotlib3.11.0Базовые графики
seaborn0.13.2Статистическая визуализация
scikit-learn1.9.0Машинное обучение
python-dotenv1.2.2Управление секретами. Безопасное хранение паролей БД и токенов в файлах .env
cryptography49.0.0Шифрование данных. На случай продвинутой работы с секретами внутри Python
sqlalchemy2.0.51Универсальный ORM-мост между Python и реляционными БД

1.2. Установка инструментов верстки и коннекторов БД

# -- Этап 2 -- Anaconda Prompt: (ds-book) C:\Users\YOUR_USERNAME>
# Установка в conda инструментов верстки и коннекторов БД

conda install -c conda-forge jupyter-book mysql-connector-python ^
  pymysql jupysql jupyterlab-execute-time jupyterlab-myst
ПакетВерсия в проектеНазначение
Jupyter Book2.1.6Для верстки сайта из файлов Markdown и блокнотов Jupyter
mysql-connector-python9.7.0Драйвер базы данных MySQL для Python
pymysql1.2.0Драйвер-коннектор MySQL для SQLAlchemy
JupySQL0.11.1Расширение для работы с SQL в ячейках Jupyter c поддержкой подсветки синтаксиса
jupyterlab-execute-time3.2.0Отображение времени, затраченного на выполнение ячейки в JupyterLab
jupyterlab_myst2.7.0Визуальный плагин разметки MyST для Lab. Рендерит внутри интерфейса во время работы

1.3. Установка Polars

Из официальной документации установка производится только через менеджер pip. Причем для старых процессоров (без поддержки AVG) команда установки отличается.

# -- Этап 3 -- Anaconda Prompt: (ds-book) C:\Users\YOUR_USERNAME>
# Установка Polars через менеджер `pip`

# Универсальный установщик -- на любых PC
pip install polars[rtcompat]

# На современных PC с поддержкой AVX2
pip install polars
ПакетВерсия в проектеНазначение
Polars1.43.0Аналог Pandas. Мощный современный движок на Rust для щупанья альтернатив (на домашнем компе)
polars[rtcompat]1.42.1На дачном компе: c автоматической поддержкой старых процессоров (через движок совместимости)

Зачем понадобятся Pandas и Polars наглядно продемонстрировал в Главе 3.


1.4. Фиксация окружения

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

Но это не наш метод. Потому что может сложиться ситуация, когда нам понадобится созданное окружение воссоздать. Поэтому потратим ещё какое-то количество времени и сохраним (зафиксируем) нашу работу в специальный файл зависимостей environment.yml.

Поскольку мы в Windows, папку проекта можем создать через штатный Проводник. Или продолжить в терминале:

# Anaconda Prompt: (ds-book) C:\Users\YOUR_USERNAME>

C:\Users\YOUR_USERNAME>D:   # перейти на датадиск
D:\>cd GitHub\Books         # перейти в родительскую папку проекта

# создать папку проекта и (&&) перейти в нее
mkdir Learning-SQL && cd Learning-SQL

Наконец, готовы создать волшебный файл, в котором будут зафиксированы все зависимости созданного нами окружения. Создадим его, находясь в нашем окружении (об этом подсказывает в скобках имя окружения (ds-book) перед текстом командной строки):

# Anaconda Prompt: (ds-book) D:\GitHub\Books\Learning-SQL>

conda env export --no-builds > environment.yml

После создания открываем environment.yml (например, в VS Code) и ... вручную убираем лишнее, корректируем, добавляем комментарии, чтобы получить чистый понятный завершенный вариант, готовый к развертыванию на любом компе

environment.yml
name: ds-book
channels:
  - conda-forge
  - defaults
dependencies:
  - python=3.12.12
  - pip
  # Среда разработки
  - jupyterlab=4.4.7
  - notebook=7.4.5
  - jupyter-book=2.1.6
  - jupyterlab-myst=2.7.0
  # Анализ данных и визуализация
  - pandas>=3.0.3
  - numpy>=2.5.1
  - matplotlib>=3.11.0
  - seaborn>=0.13.2
  - scikit-learn>=1.9.0
  # Работа с БД
  - sqlalchemy>=2.0.51
  - mysql-connector-python>=9.7.0
  - pymysql=1.2.0
  - jupysql=0.11.1
  - jupyterlab_execute_time>=3.2.0
  # Утилиты
  - python-dotenv
  - cryptography
  - pip:
      - "polars[rtcompat]>=1.43.1"

1.5. Воспроизведение окружения

При наличии файла environment.yml создание окружения на другом компе сводится к одной простой команде

# Находясь в корне планируемого проекта в базовом окружении
# Anaconda Prompt: (base) D:\GitHub\Books\Learning-SQL>

conda env create -f environment.yml

1.6. Краткий чек-лист

# Этап 1: создание conda-окружения и установка базовых пакетов
conda create --name ds-book -c conda-forge python=3.12 jupyterlab=4.4.7 ^
  notebook=7.4.5 pandas numpy matplotlib seaborn scikit-learn ^
  python-dotenv cryptography sqlalchemy -y

# Активация окружения
conda activate ds-book

# Этап 2: установка в conda инструментов верстки и коннекторов БД
conda install -c conda-forge jupyter-book mysql-connector-python ^
  pymysql jupysql jupyterlab-myst

# Этап 3: Установка Polars через менеджер `pip`
pip install polars[rtcompat]

# Фиксация окружения
conda env export --no-builds > environment.yml

# Воспроизведение окружения
conda env create -f environment.yml