В этой статье мы поговорим о компиляторах и интерпретаторах Python и обсудим 7 самых популярных из них: CPython, Jython, IronPython, ActivePython, Nuitka, PyJS и Stackless Python.
Итак, давайте начнем.
Компиляторы и интерпретаторы Python
Возможно, вы слышали, что Python называется интерпретируемым языком программирования. Это означает, что компилятор преобразует исходный код (.py-файл) в байт-код (.pyc-файл), который затем исполняется виртуальной машиной Python (PVM).
А теперь рассмотрим наш список компиляторов и интерпретаторов Python:
1. CPython
![Топ-7 бесплатных компиляторов и интерпретаторов Python](https://neerc.ifmo.ru/wiki/images/3/31/Python-logo.png)
Это наиболее распространённая, эталонная реализация Python. CPython может быть определен как интерпретатор и компилятор, поскольку он компилирует код Python в байт-код перед его интерпретацией.
Характеристики:
- Разработчики: разработчики Python и сообщество Python, при поддержке Python Software Foundation
- Последняя версия: 3.8.2 (24 февраля 2020)
- Написан на: C
- Тип: интерпретатор Python
Особенностью CPython является то, что он использует глобальную блокировку интерпретатора (GIL) для каждого процесса интерпретатора CPython. Это означает, что в рамках одного процесса в любой момент времени только один поток может обрабатывать байт-код Python. Параллельное выполнение кода может быть достигнуто только с помощью отдельных процессов интерпретатора CPython, которыми управляет многозадачная ОС. В Python есть модуль multiprocessing, который упрощает создание процессов.
2. Jython
![Топ-7 бесплатных компиляторов и интерпретаторов Python](https://www.jython.org/assets/jython.png)
Jython является преемником JPython. Это реализация Python для виртуальной машины Java. Jython одновременно и компилятор, и интерпретатор.
Характеристики:
- Первый выпуск: 17 января 2001
- Последняя версия: 2.7.2 (21 марта 2020)
- Написан на: Python и Java
- Тип: интерпретатор Python
Jython компилирует исходный код Python в байт-код Java. Это означает, что мы можем запустить его на любой машине, на которой работает JVM (виртуальная машина Java). Программы, выполняемые в среде Jython, могут одновременно использовать классы языков Java и Python.
3. IronPython
![Топ-7 бесплатных компиляторов и интерпретаторов Python](https://freepl.at.ua/logo/ironpython-logo-tw.png)
Это реализация Python, предназначенная для платформы Microsoft .NET или Mono.
Характеристики:
- Автор: Джим Хугунин
- Первый выпуск: 5 сентября 2006
- Последняя версия: 2.7.9 (Октябрь 9, 2018)
- Написан на: C#
- Тип: интерпретатор Python
IronPython поддерживает динамическую компиляцию и интерактивную консоль. Скрипты Python могут взаимодействовать с объектами .NET.
4. ActivePython
![Топ-7 бесплатных компиляторов и интерпретаторов Python](https://pbs.twimg.com/media/DAVpf3qUQAEglJp.jpg)
ActivePython — это дистрибутив интерпретатора языка программирования Python от компании ActiveState. Распространяется в версиях для Microsoft Windows, Windows NT, Mac OS X, Linux, Solaris, AIX и HP-UX. ActivePython включает более 300 популярных пакетов Python, прошедших предварительную проверку на наличие устаревших или уязвимых версий, несовместимости и неправильного лицензирования.
5. Nuitka
Nuitka — это транспайлер, который транслирует код Python в исполняемые файлы или исходный код C/C++.
Характеристики:
- Разработчики: Кей Хайен, сообщество
- Последняя версия: 0.6.5 (30 июля 2019)
- Тип: транспайлер
Nuitka работает с различными версиями Python и позволяет создавать автономные приложения, даже когда Python не установлен на целевом компьютере.
6. PyJS
![Топ-7 бесплатных компиляторов и интерпретаторов Python](https://upload.wikimedia.org/wikipedia/commons/e/ea/Pyjs-logo.png)
PyJS — это фреймворк для для разработки веб-приложений. Он позволит вам использовать Python для разработки как клиентской части веб-приложений, так и десктоп-приложений.
Характеристики:
- Автор: Джеймс Таубер
- Первый выпуск: март 2007
- Последняя версия: 0.8.1a (6 мая 2012)
- Написан на: Python, JavaScript
Раньше PyJS назывался Pyjamas. Он транслирует ваш код Python в JavaScript и позволяет запускать его в браузере. PyJS поставляется с AJAX-фреймворком и библиотекой виджетов.
7. Stackless Python
![Топ-7 бесплатных компиляторов и интерпретаторов Python](https://hackr.io/blog/uploads/images/1570190915bVYLGAKbsq.jpg)
Stackless Python — это интерпретатор Python. Он назван так из-за отказа от использования стандартного стека вызовов языка C в пользу собственного стека.
Характеристики:
- Автор: Кристиан Тисмер
- Первый выпуск: 1998
- Последняя версия: 3.6.6 (12 сентября 2018)
- Написан на: C, Python
- Тип: интерпретатор Python
Особенностью Stackless являются микропотоки (microthreads), которые позволяют избежать чрезмерного расхода системных ресурсов, присущего стандартным потокам операционной системы. В дополнение к стандартным возможностям Python, Stackless добавляет поддержку сопрограмм, коммуникационных каналов и сериализации задач.
Итак, мы рассмотрели некоторые из самых популярных компиляторов и интерпретаторов Python. И можем заключить, что Python не ограничивается только CPython, основной реализацией. Также существуют другие реализации, среди которых можно выбрать ту, которая больше всего подходит для решения поставленных задач.