Нуитка - Nuitka
Эта статья поднимает множество проблем. Пожалуйста помоги Улучши это или обсудите эти вопросы на страница обсуждения. (Узнайте, как и когда удалить эти сообщения-шаблоны) (Узнайте, как и когда удалить этот шаблон сообщения)
|
Разработчики) | Кей Хайен и другие |
---|---|
Стабильный выпуск | 0.6.8 / 10 мая 2020 |
Репозиторий | github |
Написано в | C, Python |
Доступно в | английский |
Тип | компилятор исходного кода |
Лицензия | Лицензия Apache 2.0 |
Интернет сайт | https://nuitka.net/ |
Нуитка это источник в исходный компилятор который компилирует Python код для C исходный код, применяя некоторые оптимизации во время компиляции в процессе, такие как сворачивание и распространение констант, встроенное прогнозирование вызовов, вывод типов и выполнение условных операторов.[1][2] Первоначально Nuitka была разработана для создания кода C ++, но текущие версии создают исходный код C, используя только те функции C11 которые разделяют С ++ 03, что позволяет производить дальнейшую компиляцию в двоичный исполняемый формат современными компиляторами C и C ++, включая gcc, лязгать, MinGW, или же Microsoft Visual C ++. Он принимает код Python, совместимый с несколькими различными версиями Python (в настоящее время поддерживая версии 2.6, 2.7 и 3.3–3.8), и дополнительно позволяет создавать автономные программы, для которых не требуется установка Python на целевой компьютер.
Nuitka обсуждалась на конференции EuroPython 2012, и в конце того же года началась серьезная разработка. Теперь он поддерживает практически все функции языка Python.[3] В будущих выпусках запланированы дополнительные оптимизации времени компиляции, в том числе отказ от использования объектов Python для дополнительных переменных, тип которых может быть определен во время компиляции, особенно при использовании итераторов, что, как ожидается, приведет к значительному увеличению производительности.[4]
Ограничения
В настоящее время невозможно кросс-компиляция двоичные файлы (например, создание исполняемого файла в Windows и отправка его в Mac OS X).
Автономные двоичные файлы, созданные с использованием - автономный
параметр командной строки включает встроенный CPython интерпретатор для обработки аспектов языка, которые не определяются при компиляции программы и должны интерпретироваться во время выполнения, например утка печатать, Обработка исключений, и динамическое выполнение кода ( оценка
функция и exec
функция или оператор) вместе с теми Python и собственными библиотеками, которые необходимы для выполнения, что приводит к довольно большим размерам файлов.
Дизайн Nuitka в значительной степени опирается на внутреннее устройство интерпретатора CPython и, как следствие, на другие реализации языка Python, такие как PyPy, Jython, и IronPython не может использоваться вместо CPython для интерпретатора и библиотеки времени выполнения.[1]
использование
Nuitka можно установить из репозиториев многих дистрибутивов Linux. Его также можно установить через пип
и pip3
, соответственно. Компиляция выполняется с помощью nuitka program.py
или с самим Python (python -m nuitka program.py
).
веб ссылки
Источники
- ^ а б Хайен, Кей (21.06.2012). "Руководство пользователя". Nuitka Home. Получено 2020-05-14.
- ^ Егулалп, Сердар (2018-10-02). «Компилятор Nuitka Python-to-C дает большой прирост производительности». InfoWorld. Получено 2020-05-14.
- ^ Егулалп, Сердар (19 декабря 2014 г.). «Компилятор Python в C ++ обещает более быстрое выполнение». InfoWorld. Получено 2020-05-14.
- ^ "Nuitka Changelog". GitHub. 2020-05-10. Получено 2020-05-14.