В последние годы Termux стал популярной платформой для разработки и запуска Python-проектов непосредственно на устройствах Android. Однако, сборка и развертывание этих проектов в Termux может быть непростой задачей, особенно когда речь идет о создании самодостаточных исполняемых файлов. В этой статье мы рассмотрим, как использовать современные инструменты, такие как Poetry, PyInstaller и CI-скрипты, для создания модульной и надежной системы сборки Python-проектов в Termux.
Почему это важно?
Традиционно, развертывание Python-приложений часто требует наличия Python интерпретатора и всех необходимых зависимостей на целевой системе. В Termux, где заранее не гарантируется наличие всех необходимых пакетов, это может стать проблемой. Использование Poetry и PyInstaller позволяет создать исполняемые файлы, которые включают все необходимые зависимости, что упрощает развертывание и повышает переносимость приложения.
Poetry: Управление зависимостями
Poetry – это инструмент для управления зависимостями и сборки Python-проектов. Он позволяет определить зависимости проекта в файле pyproject.toml и легко установить их.
pip install poetry
poetry new my_project
cd my_project
poetry add requests beautifulsoup4
poetry install
Poetry создает файл poetry.lock, который фиксирует версии всех зависимостей, обеспечивая воспроизводимость сборки.
PyInstaller: Создание исполняемых файлов
PyInstaller – это инструмент для создания автономных исполняемых файлов из Python-скриптов. Он собирает интерпретатор Python, код приложения и все необходимые зависимости в один файл, который можно запускать на устройствах, где не установлен Python.
pip install pyinstaller
pyinstaller --onefile main.py
Параметр --onefile создает один исполняемый файл. Для более сложных проектов может потребоваться использование других параметров, например, --windowed для создания оконного приложения.
CI-скрипты: Автоматизация сборки
CI (Continuous Integration) скрипты позволяют автоматизировать процесс сборки и тестирования проекта. Это особенно полезно при работе над большими проектами и при необходимости частого развертывания обновлений.
Можно использовать такие платформы, как GitHub Actions, GitLab CI или Jenkins для создания CI-скриптов. Скрипт может выполнять следующие действия:
- Установка зависимостей с помощью
poetry install. - Сборка проекта с помощью
pyinstaller --onefile main.py. - Запуск тестов.
- Развертывание исполняемого файла в Termux.
Пример простого GitHub Actions workflow:
name: Build and Deploy to Termux
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.9'
- name: Install Poetry
run: |
pip install poetry
- name: Install dependencies
run: poetry install
- name: Build with PyInstaller
run: pyinstaller --onefile main.py
- name: Upload executable
uses: actions/upload-artifact@v3
with:
name: executable
path: dist/main.exe # Или dist/main.app для macOS
Преимущества использования этого подхода
- Модульность: Poetry обеспечивает четкое управление зависимостями, что делает проект более модульным и понятным.
- Переносимость: PyInstaller позволяет создавать самодостаточные исполняемые файлы, которые можно запускать на различных устройствах Android.
- Автоматизация: CI-скрипты автоматизируют процесс сборки и развертывания, что экономит время и снижает вероятность ошибок.
- Воспроизводимость: Использование
poetry.lockгарантирует воспроизводимость сборки.
Заключение
Использование Poetry, PyInstaller и CI-скриптов позволяет создать надежную и эффективную систему сборки Python-проектов в Termux. Это упрощает развертывание приложений на Android и повышает их переносимость. Данный подход особенно актуален для проектов, требующих частого обновления и автоматизированного тестирования.
Если вам нужна помощь в создании такой системы для вашего проекта, обратитесь в РыбинскЛАБ. Мы предлагаем услуги по разработке и внедрению CI/CD конвейеров, автоматизации сборки и развертывания, а также консультации по оптимизации Python-кода.