Вышел Nuitka 1.1 — компилятор Python в исполняемые файлы

good-penguin.png

16 октября вышла стабильная версия компилятора Nuitka 1.1, предназначенного для сборки скриптовых приложений на Python в исполняемый файл через трансляцию в C.

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

  • Python3.10: Добавлена поддержка альтернативы match в виде |.
  • Совместимость:
    • Добавлен загрузчик на основе метапутей Nuitka с помощью pkg_resources таким образом, чтобы проверка наличия ресурса с помощью has_resource оставалась работоспособной. Это также должно добавить поддержку использования jinja2.PackageLoader (ранее работал только jinja2.FileSystemLoader).
    • Функцию __defaults__ теперь можно сделать изменяемой по размеру атрибута. Долгое время это было относительно большой проблемой для некоторых пакетов, но теперь это также поддерживается.
    • Добавлена поддержка функций:
      • importlib.metadata.distribution;
      • importlib_metadata.distribution;
      • importlib.metadata.metadata;
      • importlib_metadata.metadata.
  • Добавлена поддержка включения других двоичных файлов, кроме основного исполняемого файла. До сих пор в не-Windows создавался только основной двоичный исполняемый файл, жестко закодированный, и ничего больше. Но некоторые вещи, например, QtWebEngine, требуют использования двоичных файлов, и теперь у них больше нет проблемы с отсутствием x-bit в macOS и Linux.
  • Автономность: разрешен путь к исполняемому файлу при вызове по символической ссылке.
  • Python3.9+: Добавлена поддержка importlib.resources.files со скомпилированными модулями.
  • UI: Добавлен метод интерфейса для указания шаблонов имен файлов с опцией включения данных пакета, что позволяет использовать --include-package-data во многих случаях, выбирая только нужные файлы или типы файлов. Теперь можно использовать --include-package-data=package_name=*.txt и выбрать только подмножество файлов данных пакета. До этого он включал в себя все, и приходилось использовать --noinclude-data-files.
  • Добавлено последоваельное разрешение условия when для всех элементов конфигурации пакета, например, для библиотек DLL.
  • В macOS добавлена подпись рантайма в качестве экспериментальной опции.
  • Плагины:
    • Добавлен метод перегрузки специально для работы с автономным двоичным файлом. Это упрощает изменение только этого конкретного двоичного файла.
    • Добавлена поддержка регулярных выражений в заменах с anti-bloat-защитой и новым методом replacements_re.

>>> Подробности

©  Linux.org.ru