Установка и настройка

Системные требования

Требование

Минимум

Рекомендуется

Python

3.10

3.11+

ОС

Windows 10 / Linux / macOS

ОЗУ

4 ГБ

8+ ГБ

Диск

500 МБ

2+ ГБ (с данными)


Установка

  1. Установить последнюю версию пакета:

pip install git+https://github.com/PavelYurov/blind_deconvolution.git

Будут установлен пакет blinddeconv и остальные зависимости (numpy, scipy, opencv-python, scikit-image, и др.)

import blinddeconv
  1. Установка с дополнительными зависимостями:

Включает инструменты для тестирования, линтинга и интерактивной работы (pytest, flake8, ipython, setuptools)

pip install "git+https://github.com/PavelYurov/blind_deconvolution.git[dev]"

Включает CLI-интерфейс и автоматизацию (click, pyyaml, jsonschema)

pip install "git+https://github.com/PavelYurov/blind_deconvolution.git[cli]"

Необходимо для генерации документации через Sphinx (sphinx, sphinx-rtd-theme)

pip install "git+https://github.com/PavelYurov/blind_deconvolution.git[docs]"

Всё вместе:

pip install "git+https://github.com/PavelYurov/blind_deconvolution.git[cli,dev,docs]"

Удаление

pip uninstall blinddeconv

Профили зависимостей

Профиль

Что включает

Команда

base

Основные зависимости проекта

pip install .

cli

CLI-интерфейс (click, pyyaml, jsonschema)

pip install ".[cli]"

full

Расширенные версии (scikit-image>=0.19, optuna>=3.0)

pip install ".[full]"

dev

Инструменты разработки (pytest, flake8, ipython)

pip install ".[dev]"

docs

Генерация документации (sphinx, sphinx-rtd-theme, myst-parser)

pip install ".[docs]"

Комбинирование профилей:

# CLI + разработка
pip install ".[cli,dev]"

# Всё вместе
pip install ".[cli,dev,docs,full]"

Интерактивное развертывание окружения

Интерактивный установщик зависимостей (install.py)

Скрипт обеспечивает автоматизированную настройку рабочего окружения. Основные функции:

  • создает и настраивает виртуальное окружение (по умолчанию .venv);

  • проверяет совместимость версии Python и наличие системных библиотек;

  • разрешает зависимости указанного профиля из pyproject.toml (секция [tool.preflight.profiles]);

  • устанавливает недостающие пакеты и регистрирует их в файле состояния .dependency_state.json.

Показать доступные профили:

python install.py list-profiles

Проверить статус зависимостей (без установки):

python install.py check base

Установить зависимости профиля (интерактивно):

python install.py install base

Автоматический режим (без запросов подтверждения):

python install.py install base -y

Указание пути к виртуальному окружению: Скрипт автоматически использует указанное окружение (создает его при отсутствии).

python install.py --venv my_env install base

Интерактивное удаление зависимостей (uninstall.py)

Скрипт выполняет безопасное удаление пакетов, опираясь на историю установок (.dependency_state.json). Алгоритм учитывает пересечения зависимостей между профилями:

  • удаляет пакеты, относящиеся только к выбранному профилю;

  • сохраняет пакеты, которые используются другими активными профилями;

  • поддерживает полную очистку окружения.

Удалить зависимости конкретного профиля:

python uninstall.py base

Пример: если пакет numpy используется и в профиле base, и в профиле dev, то при удалении base пакет numpy останется в системе.

Полная очистка (сброс проекта): Удаляет каталог виртуального окружения и файл истории установок.

python uninstall.py --clean-all

Настройка виртуального окружения (вручную)

# Создание
python -m venv .venv

# Активация (Windows PowerShell)
.venv\Scripts\Activate.ps1

# Активация (Linux / macOS)
source .venv/bin/activate

# Установка проекта
pip install -e ".[cli,dev]"

Опциональные зависимости

GNU Octave (для MATLAB-обёрток)

Некоторые внешние алгоритмы требуют GNU Octave:

  1. Установите GNU Octave

  2. Убедитесь, что octave доступен в PATH

  3. Установите Python-обёртку: pip install oct2py

Настройка пути к Octave через .env

Модуль blinddeconv.system.octave использует pydantic-settings и автоматически читает файл .env из корня проекта. Если исполняемый файл Octave не находится в PATH, создайте .env:

# .env (в корне проекта)
OCTAVE_EXECUTABLE=C:\Program Files\GNU Octave\mingw64\bin\octave-cli.exe

На Linux/macOS:

OCTAVE_EXECUTABLE=/usr/local/bin/octave-cli

Если переменная не задана, система попытается найти octave-cli или octave через shutil.which(). При неудаче будет выведено предупреждение, но остальной функционал фреймворка продолжит работать.

CUDA / GPU (для нейросетевых методов)

Для алгоритмов на базе PyTorch:

pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121

Проверка установки

import blinddeconv
from blinddeconv.processing import Processing

print(f"Версия: {blinddeconv.processing.__version__}")

# Создание экземпляра Processing
p = Processing(images_folder="images/original", color=False)
print("Установка прошла успешно!")

Решение проблем

ImportError: No module named 'cv2'

pip install opencv-python

ModuleNotFoundError: No module named 'blinddeconv'

Убедитесь, что пакет установлен в текущее виртуальное окружение:

pip show blind-deconvolution

Ошибки при сборке документации

pip install ".[docs]"
pip install myst-parser