We detected you are likely not from a Russian-speaking region. Would you like to switch to the international version of the site?

  Назад к списку статей

Модульная система сборки и пакетирования Python‑проекта в Termux с использованием Poetry, PyInstaller и CI‑скриптов

Создание надежной системы сборки Python проектов в Termux с помощью Poetry, PyInstaller и CI. Развертывание приложений на Android.

В последние годы 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-кода.

* Текст статьи подготовлен и структурирован с использованием технологий искусственного интеллекта. Проверен и доработан перед публикацией.

Нужна помощь с настройкой Termux, Linux и серверов?

Я оказываю ИТ-услуги: настройка серверов, автоматизация, безопасность, помощь с Linux и инфраструктурой. Материалы сайта — только в ознакомительных и образовательных целях.

Связаться со мной
Поддержать проект