Nuitka, компилятор Python, который может конвертировать приложения Python в двоичные файлы C.

Нуитка

Nuitka — оптимизирующий компилятор Python, создающий исполняемые файлы.

Nuitka — это проект Python, написанный на Python, который компилирует Python в C. то есть компилятор Python, способный генерировать независимый двоичный файл, не требующий среды выполнения Python в системе, где он выполняется.

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

Однако важно отметить, что повышение производительности не гарантируется и может значительно варьироваться в зависимости от рабочей нагрузки. Некоторые программы могут не добиться значительного улучшения производительности. Поэтому, как правило, рекомендуется полагаться на Nuitka не как на решение, повышающее производительность, а как на надежный инструмент упаковки.

Nuitka поддерживает версии Python 2.6, 2.7 или 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11 и имеет поддержку Linux, FreeBSD, NetBSD, macOS X и Windows, а также поддержку архитектур x86, x86_64 (amd64). и АРМ.

Что нового в Нуитке 2.0?

В настоящее время Нуитка находится в своей версии 2.0 который был недавно запущен, и он подчеркивает, что они включили различные улучшения и функциональные возможности конфигурации пакета, который позволяет вам запрашивать значения установленных пакетов во время компиляции и использовать эти значения для определения бэкэнда. Поддержка переменных в конфигурации упрощает многие стандартные задачи, которые раньше требовали подключения плагинов.

Кроме того, было добавлено Поддержка пользовательских параметров, влияющих на конфигурацию каждого пакета. Эти параметры можно прочитать с помощью новой функции get_parameter и использоваться для выбора поведения модулей. Например, можно настроить параметр для отключения Numba JIT или Torch JIT.

Вариант «был введен--include-onefile-external-data» для указания шаблонов файлов данных, которые определены в конфигурации, но должны предоставляться отдельно от исполняемого файла при компиляции в режиме одного файла. Аналогично, вариант «–cf-защита» для настройки режима защиты CFI (Control Flow Integrity) в GCC, который предотвращает нарушения нормального порядка выполнения (control flow Integrity).

Из другие изменения которые выделяются:

  • Добавлена ​​поддержка решений по модулям, позволяющая пользователям влиять на конфигурацию Nuitka для каждого пакета.
  • Добавлена ​​поддержка конфигураций пакетов Nuitka, что упрощает запрос значений установленных пакетов.
  • Обнаружение скомпилированных исполняемых файлов, которые слишком велики, чтобы избежать нарушения ограничений на размер.
  • Улучшенная отчетность и возможность создания PR с помощью изменений в Nuitka-Watch.
  • Реализован анализ типов циклов, который в дальнейшем будет использоваться для реализации выборочной оптимизации.
  • Были добавлены оптимизации для ускорения работы с неразделяемыми и экранированными переменными.
  • Обходной путь для частных функций, таких как слоты Qt, у которых нет искаженных имен.
  • Исправлено обнаружение pip-пакетов при использовании Nuitka.
  • Улучшения в анализаторе отложенной загрузки для pydantic.
  • Добавлены файлы данных для различных пакетов, таких как pyocd и cmsis_pack_manager.
  • Исправления для правильной обработки расширенных спецификаций во время выполнения.
  • Решение, позволяющее избежать сбоев во время выполнения определенных методов.
  • Улучшения при включении пакетов из командной строки.
  • Специальные решения для таких платформ, как Android, Windows и Debian.
  • Улучшена совместимость с различными версиями Python и операционными системами.

наконец, если вы интересно узнать об этом больше, вы можете проверить подробности По следующей ссылке.

Как установить Нуитку на Linux?

Тем, кто заинтересован в установке Nuitka в своей системе, следует знать, что установка проста: вам нужно только установить Python и систему управления пакетами pip.

Чтобы установить Nuitka, просто выполните следующую команду:

pip install nuitka

Что касается использования этого компилятора, вы можете обратиться к руководству пользователя по адресу: по следующей ссылке.