Нуитка
![]() | В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Разработчик(и) | Кей Хайен и другие |
---|---|
Стабильная версия | 2.4.2 [1] / 23 июля 2024 г |
Репозиторий | github |
Написано в | С , Питон |
Доступно в | Английский |
Тип | компилятор исходного кода |
Лицензия | Лицензия Апач 2.0 |
Веб-сайт | нуитка |
Нуитка (произносится как / n juː t k ʌ / [2] ) — это компилятор исходного кода , который компилирует код Python в исходный код C , применяя в процессе некоторые оптимизации времени компиляции, такие как свертывание и распространение констант , встроенное прогнозирование вызовов, вывод типа и выполнение условного оператора. [3] [4] Первоначально Nuitka была разработана для создания кода C++, но текущие версии создают исходный код C, используя только те функции C11 , которые используются в C++03 , что позволяет осуществлять дальнейшую компиляцию в двоичный исполняемый формат современными компиляторами C и C++, включая gcc , clang , MinGW или Microsoft Visual C++ . Он принимает код Python, совместимый с несколькими различными версиями Python (в настоящее время поддерживаются версии 2.6, 2.7 и 3.3–3.10), и при необходимости позволяет создавать автономные программы, не требующие установки Python на целевой компьютер.
Nuitka обсуждалась на конференции EuroPython 2012 года, а серьёзная разработка началась в конце того же года. Теперь он поддерживает практически все функции языка Python. [5] В будущих выпусках запланирована дополнительная оптимизация времени компиляции, в том числе отказ от использования объектов Python для дополнительных переменных, тип которых можно определить во время компиляции, особенно при использовании итераторов, что, как ожидается, приведет к значительному увеличению производительности. [6]
Ограничения
[ редактировать ]В настоящее время невозможно выполнить кросс-компиляцию двоичных файлов (например, собрать исполняемый файл в Windows и отправить его в macOS).
Автономные двоичные файлы, созданные с использованием --standalone
Опция командной строки включает встроенный интерпретатор CPython для обработки аспектов языка, которые не определяются при компиляции программы и должны интерпретироваться во время выполнения, например, утиный ввод , обработка исключений и динамическое выполнение кода (параметр командной строки eval
функция и exec
функция или оператор), а также те Python и собственные библиотеки, которые необходимы для выполнения, что приводит к довольно большим размерам файлов.
Дизайн Nuitka в значительной степени зависит от внутреннего устройства интерпретатора CPython, и в результате другие реализации языка Python, такие как PyPy , Jython и IronPython , не могут использоваться вместо CPython для интерпретатора и библиотеки среды выполнения. [3]
Использование
[ редактировать ]Nuitka можно установить из репозиториев многих дистрибутивов Linux. Его также можно установить через pip
и pip3
, соответственно. Компиляция выполняется либо с помощью nuitka program.py
или вызвав сам Python и после этого определив, какой модуль запускать, в данном случае это Nuitka ( python -m nuitka program.py
).
Ссылки
[ редактировать ]- ^ «Нуитка Релизы» .
- ^ Nuitka, компилятор Python , получено 2 марта 2022 г.
- ^ Jump up to: а б Хайен, Кей (21 июня 2012 г.). «Руководство пользователя» . Нуитка Дом . Проверено 14 мая 2020 г.
- ^ Егулалп, Сердар (2 октября 2018 г.). «Компилятор Nuitka Python-to-C обеспечивает значительный прирост производительности» . Инфомир . Проверено 14 мая 2020 г.
- ^ Егулалп, Сердар (19 декабря 2014 г.). «Компилятор Python-C++ обещает более быстрое выполнение» . Инфомир . Проверено 14 мая 2020 г.
- ^ «Журнал изменений Нуитки» . Гитхаб . 10 мая 2020 г. Проверено 14 мая 2020 г.
Внешние ссылки
[ редактировать ]- Официальный сайт
- Nuitka на GitHub — исходный код и руководство