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.

Хоча відсутність інструкцій для підтримки випуску ("додавання піоксиданта", "аналіз піоксидантів" та "оновлення піоксидантів") та обмежена підтримка Terminfo та Readline, відсутність підтримки інших версій, крім Python 3.7, відсутність підтримки стиснення ресурсів, неможливість перехресного компілювання.

Фуенте: https://pyoxidizer.readthedocs.io


Залиште свій коментар

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

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.