Jump to content

Нуитка

Нуитка
Разработчик(и) Кей Хайен и другие
Стабильная версия
2.4.2 [1] / 23 июля 2024 г .; 10 дней назад ( 23.07.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).

  1. ^ «Нуитка Релизы» .
  2. ^ Nuitka, компилятор Python , получено 2 марта 2022 г.
  3. ^ Jump up to: а б Хайен, Кей (21 июня 2012 г.). «Руководство пользователя» . Нуитка Дом . Проверено 14 мая 2020 г.
  4. ^ Егулалп, Сердар (2 октября 2018 г.). «Компилятор Nuitka Python-to-C обеспечивает значительный прирост производительности» . Инфомир . Проверено 14 мая 2020 г.
  5. ^ Егулалп, Сердар (19 декабря 2014 г.). «Компилятор Python-C++ обещает более быстрое выполнение» . Инфомир . Проверено 14 мая 2020 г.
  6. ^ «Журнал изменений Нуитки» . Гитхаб . 10 мая 2020 г. Проверено 14 мая 2020 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: ee7e4d8dfd81ae7e597f0a062902b1b0__1722125520
URL1:https://arc.ask3.ru/arc/aa/ee/b0/ee7e4d8dfd81ae7e597f0a062902b1b0.html
Заголовок, (Title) документа по адресу, URL1:
Nuitka - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)