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

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

18

80–150 МБ

150–250 МБ

40–80 МБ

Neutralino самый лёгкий

Сложность старта

⭐⭐⭐⭐⭐ (Очень низкая)

⭐⭐⭐ (Средняя)

⭐⭐⭐⭐ (Низкая)

Eel требует только pip install

Графики (Chart.js)

✅ Работает «из коробки»

✅ Работает «из коробки»

✅ Работает «из коробки»

Паритет: все используют веб-рендер

Режим эмуляции

Легко (Python-код)

⚠️ Требует моков в JS

⚠️ Требует моков в JS

В Eel можно включить DEBUG_MODE одной переменной

IoT (MQTT)

✅ paho-mqtt (Python)

✅ mqtt.js (Node.js)

✅ mqtt.js (JS)

Eel удобнее, если обработка данных на Python

Упаковка (.exe)

PyInstaller (просто)

electron-builder (сложнее)

neu CLI (просто)

Eel привычнее для Python-разработчика

💡 Важно: Размер Eel сильно зависит от Python-зависимостей. Чистый скрипт — 30 МБ. С pandas + numpy — может вырасти до 150 МБ.

4.3. Алгоритм выбора: пошаговая инструкция

Текстовая версия алгоритма:

Шаг 1: Ваша логика на Python?

Да → Переходите к Шагу 2.

Нет → Смотрите в сторону Electron или Neutralino.

Шаг 2: Нужен ли сложный UI (анимации, редакторы)?

Нет (кнопки, графики, логи) → Python Eel.

ДаElectron (с Python-бэкендом через Flask/SocketIO).

Шаг 3: Критичен ли размер приложения (< 20 МБ)?

ДаNeutralino (но придётся писать логику на JS или поднимать Python-сервер отдельно).

Нет → Оставайтесь на Eel.

Шаг 4: Нужно ли работать с COM-портами?

ДаEel даст самое простое решение (pyserial).

💡 Помните: вы всегда можете комбинировать подходы. Например, тяжёлые вычисления — на Python (через subprocess из Electron), UI — на React. Но для инженерных задач это часто избыточно.

4.4. Когда НИ ОДИН из трёх не подходит?

Иногда правильный ответ — не использовать ни один из них. Это нормально!

Рассмотрите альтернативы, если:

Приложение должно весить менее 5 МБ → Смотрите в сторону Tauri (Rust + WebView).

Плюс: Очень лёгкий, безопасный.

Минус: Требует знания Rust для бэкенда.

Требуется максимальная производительность (видео, 3D) → Нативная разработка (C++, C#, Qt).

Плюс: Полный контроль над железом.

Минус: Высокий порог входа, долго писать.

Вы делаете мобильное приложение → Electron/Eel/Neutralino не работают на iOS/Android.

Решение: Flutter, React Native или Kivy (Python).

🌐 Примечание: Tauri — достойный конкурент Electron с размером дистрибутива ~3–5 МБ, но он требует знания Rust. Мы не включаем его в основную триаду, так как наша цель — Python и веб-технологии для инженеров.

4.5. Частые ловушки новичков

ОШИБКА

ПОСЛЕДСТВИЕ

КАК ИЗБЕЖАТЬ

Выбрать Electron для простого «считывателя COM-порта»

Пользователь скачивает 150 МБ ради одной кнопки

Спросите: «Действительно ли нужен Electron?»

Ожидать от Eel нативного меню «из коробки»

Разочарование, поиск несуществующих функций