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