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
.
- Добавлен загрузчик на основе метапутей Nuitka с помощью
- Добавлена поддержка включения других двоичных файлов, кроме основного исполняемого файла. До сих пор в не-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
.
>>> Подробности