PyOxidizer - утилита для упаковки проектов Python в исполняемые файлы.

ПиОкислитель

Несколько дней назад разработчики представили первую версию утилиты PyOxidizer, который предлагается как утилита, которую можно использовать для упаковки проекта Python в отдельный исполняемый файл, включая интерпретатор Python и все необходимые библиотеки и ресурсы.

Такие файлы можно запускать в средах без установленного инструментария Python или независимо от наличия необходимой версии Python.

PyOxidizer также может создавать статически связанные исполняемые файлы, не связанные с системными библиотеками. Код проекта написан на языке Rust и распространяется под лицензией MPL (Mozilla Public License) 2.0.

О PyOxidizer?

В рамках проекта основан на одноименном модуле для языка Rust, который позволяет встраивать интерпретатор Python в программы на Rust запускать на них скрипты Python.

ПиОкислитель Теперь он вышел за рамки плагина для Rust и позиционируется как инструмент, доступный более широкой аудитории для создания и распространения автономных пакетов Python.

PyOxidizer - утилита, предназначенная для решения проблемы распространения приложений Python.

Для тех, кому не нужно распространять приложения в виде исполняемого файла, PyOxidizer предлагает возможности для создания подходящих библиотек для связывания с любым приложением для встраивания в них интерпретатора Python и необходимого набора расширений.

Распространение приложений Python обычно считается нерешенной проблемой, поскольку Рассел Кейт-Маги определил, что распределение кода является реальной угрозой долговечности Python. По его словам, у Python никогда не было последовательной истории того, как я передаю свой код кому-то другому, особенно если этот человек не является разработчиком и просто хочет использовать мое приложение.

Для конечных пользователей, предоставление проекта в виде единого исполняемого файла Это значительно упрощает установку и избавляет от работы по выбору зависимостей, что важно, например, для сложных проектов Python, таких как видеоредакторы.

А с другой стороны для разработчиков приложений PyOxidizer позволяет им сэкономить время на организации доставки приложения без необходимости использования разных инструментов для создания пакетов для разных операционных систем.

Как работает PyOxidizer?

Использование предложенных сборок это также положительно сказывается на производительности: файлы, созданные в PyOxidizer, работают быстрее, чем при использовании системы Python, за счет удаления импорта и определения базовых модулей.

В PyOxidizer, модули импортируются из памяти (Все встроенные модули сразу загружаются в память и затем используются без доступа к диску). При тестировании время запуска приложения с PyOxidizer сокращается примерно вдвое.

Из аналогичных существующих проектов можно наблюдать: PyInstaller (распаковывает файл во временный каталог и импортирует из него модули).

  • Py2exe (связан с платформой Windows и требует распространения нескольких файлов), py2app (связан с macOS)
  • Cx-freeze (требуется отдельная упаковка зависимостей), Shiv и PEX (образуют zip-пакет и требуют наличия Python в системе)
  • Nuitka (компилирует код, а не встроенный интерпретатор), pynsist (связан с Windows), PyRun (проприетарная разработка без объяснения принципов работы).

На текущем этапе развития, PyOxidizer уже реализовал основные функции для создания исполняемых файлов для Windows, macOS и Linux.

Из далеко идущих возможностей отметили отсутствие стандартной среды компиляции, невозможность сгенерировать пакет в формате MSI, DMG и deb / rpm, с проблемами упаковки для проектов, предполагающих сложные расширения языка C.

В то время как отсутствие инструкций по поддержке выпуска («pyoxidizer add», «pyoxidizer analyse» и «pyoxidizer upgrade») и ограниченная поддержка Terminfo и Readline, отсутствие поддержки версий, отличных от Python 3.7, отсутствие поддержки сжатия ресурсов, невозможность кросс-компиляции.

источник: https://pyoxidizer.readthedocs.io


Будьте первым, чтобы комментировать

Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.