реклама
Бургер менюБургер меню

Нави Тулаг – От датчика до интерфейса. Практическое руководство по созданию инженерных десктоп приложений на Python и web-технологиях (страница 9)

18

Знайте ограничения: Eel — не замена Electron

Использовать time.sleep() в главном потоке Eel

Интерфейс зависает при чтении данных

Используйте threading или asyncio

Собирать Eel-приложение без виртуального окружения

Конфликты библиотек, огромные размеры

Всегда используйте venv перед PyInstaller

Забыть про режим эмуляции (DEBUG_MODE)

Невозможность тестов без железа

Внедряйте эмуляцию с первого дня разработки

4.6. Наш выбор для этой книги

В первой книге мы рассматривали Electron, NW.js и Eel на равных. Но для инженерных задач есть нюансы:

Аспект

Первая книга

Эта книга

Основной фокус

Electron (индустриальный стандарт)

Python Eel (язык инженера)

Целевая аудитория

Веб-разработчики

Инженеры, исследователи, студенты

Работа с железом

Упоминалась

Центральная тема (COM, MQTT, Arduino)

NW.js

Подробно рассмотрен

Исключён (уступает Neutralino/Eel)

IoT

Не рассматривался

ESP32 + MQTT + Облако

🎯 Наша философия: Не становиться веб-разработчиком. Использовать веб-технологии как инструмент для отображения данных, оставляя Python для работы с железом.

Что мы узнали?

✅ Выбор фреймворка — это анализ требований, а не следование тренду.

✅ Язык бэкенда — главный фильтр: Python → Eel, JS → Electron/Neutralino.

Eel оптимален для инженерных задач (COM-порты, данные, Python-библиотеки).

Electron нужен для сложных продуктов с массовым пользователем.

Neutralino — выбор для лёгких утилит с ограничением по размеру.

✅ Всегда задавайте себе пять ключевых вопросов перед стартом.

📋 Практическое задание

Опишите свой реальный или гипотетический проект (1–2 предложения).

Пример: «Инструмент для анализа логов сервера с графиками и фильтрацией».

Пройдите по алгоритму выбора из раздела 4.3.

Заполните таблицу:

КРИТЕРИЙ

ВАШ ОТВЕТ

ПОДХОДЯЩИЙ ФРЕЙМВОРК

Язык бэкенда

?

?

Сложность UI

?

?

Нужны ли нативные API? (COM, файлы)

?

?

Целевая аудитория

?

?

Ограничения по размеру?

?

?

Сделайте вывод: почему именно этот фреймворк — лучший выбор?

💡 Пример заполнения:

Проект: «Панель управления нагревателем через Arduino».

Бэкенд: Python (pyserial, threading).