Упаковка микросервиса FastAPI в exe
В этом уроке мы покажем, как упаковать микросервис, написанный на FastAPI, в один исполняемый файл с помощью PyInstaller. Сервис будет запускаться через ASGI‑сервер Uvicorn и при получении HTTP‑запроса будет находить все процессы Chrome и завершать их.
Что делает сервис
Микросервис принимает HTTP‑запрос, сканирует список запущенных процессов, отбирает процессы, содержащие слово «chrome» в имени, и завершает их. Это простая демонстрация взаимодействия FastAPI, системных вызовов и упаковки в exe.
Как собрать exe‑файл
Для упаковки используется PyInstaller. После установки пакета (pip install pyinstaller) запускаем команду:
pyinstaller --onefile --add-data "path/to/requirements.txt;." main.py
Где main.py – точка входа вашего FastAPI‑приложения. Параметр --onefile создаёт один исполняемый файл, а --add-data гарантирует, что все зависимости будут включены.
Запуск и тестирование
После сборки в папке dist появится файл main.exe. Запустите его командой:
.
main.exe
Сервис будет слушать порт, указанный в коде (по умолчанию 8000). Откройте браузер и отправьте запрос, например, http://localhost:8000/stop-chrome. Вы увидите, что все запущенные процессы Chrome завершатся.
Исходники и видео‑урок
Полный код проекта можно скачать с официального сайта:
https://nizamov.school/pyinstaller-fastapi-uvicorn/
Для более наглядного понимания смотрите видео‑урок на YouTube:
https://www.youtube.com/watch?v=5VTmNUALSgg
Вывод
Упаковка FastAPI‑приложения в exe с помощью PyInstaller позволяет быстро распространять сервисы без необходимости установки Python и зависимостей на целевой машине. Такой подход особенно полезен для небольших утилит и внутренних инструментов.