На самом деле Python – это спецификация языка программирования Python, которая может быть реализована различными способами. Каждая реализация языка программирования Python использует отдельный интерпретатор.
Будучи самым быстрорастущим языком программирования в 2019 году, нет недостатка в интерпретаторах для Python. Но поскольку каждый из них отвечает определенным требованиям, вам необходимо сначала выяснить, какой из них вам подходит.
Прежде чем мы перейдем к объяснению 6 самых популярных интерпретаторов Python, давайте сначала получим краткое понимание интерпретатора.
Что такое интерпретатор?
По определению, интерпретатор – это тип компьютерной программы, которая непосредственно выполняет инструкции, написанные на каком-то языке программирования или языке сценариев. Под прямым исполнением мы подразумеваем, что для этого не требуется, чтобы инструкции сначала компилировались в программу на машинном языке.
Интерпретатор Python
Итак, со всем этим давайте перейдем к краткому обзору 6 самых популярных интерпретаторов Python:
CPython
Поддержка – до Python 3.7
Это стандартная и наиболее широко используемая реализация языка программирования Python. Написанный на C и Python, CPython является интерпретатором, который предлагает интерфейс сторонней функции с C и другими языками программирования.
CPython также можно классифицировать как компилятор, потому что он преобразует код Python в байт-код перед его интерпретацией. Он использует GIL, Global Interpreter Lock, которая может представлять ограничение, поскольку отключает параллельные потоки Python для процесса.
Как эталонная реализация Python, CPython предлагает наибольшую совместимость с пакетами Python и модулями расширения C. Таким образом, все версии языка программирования Python реализованы на языке C.
CPython является единственным вариантом для использования пакетов Python, которые полагаются на расширения C для правильной работы. Ориентация на CPython необходима, если вы хотите охватить максимально широкую аудиторию для программы, разработанной на языке программирования Python.
IronPython
Поддержка – до Python 2.7
Реализация языка программирования Python для .NET Framework, IronPython использует библиотеки Python и .NET Framework. Он также может предоставлять код Python другим языкам, относящимся к .NET Framework.
IronPython обеспечивает поддержку динамической компиляции и поставляется с интерактивной консолью. Использование интерпретатора Python позволяет сценариям Python взаимодействовать с объектами .NET. С инструментами Python для Visual Studio IronPython напрямую интегрируется в среду разработки Visual Studio.
Jython
Поддержка – до Python 2.7
Ранее известный как JPython, Jython является реализацией Python, работающей на платформе Java. Написанный на Java и Python, Jython преобразует код Python в байт-код Java и, следовательно, позволяет запускать код Python на любой машине, имеющей JVM.
Jython обеспечивает поддержку как статической, так и динамической компиляции. Важной особенностью популярного интерпретатора Python является то, что он позволяет импортировать, а также использовать любой класс Java, например модуль Python.
Если вам нужно взаимодействовать с существующей кодовой базой Java или написать код Python для JVM, вы можете сделать ставку на Jython.
PyPy
Поддержка – до Python 2.7, Python 3.5 и Python 3.6
PyPy – это быстрая, совместимая альтернативная реализация языка программирования Python. Интерпретатор Python реализован в RPython, который является ограниченным статически типизированным подмножеством языка программирования Python .
Обладая JIT-компилятором, PyPy поддерживает C, CLI и JVM. Основная цель PyPy – предложить максимальную совместимость с эталонной реализацией CPython, одновременно повышая производительность.
PyPy используется разработчиками Python, стремящимися повысить производительность определенного кода Python. Согласно официальному сайту PyPy , популярный интерпретатор Python примерно в 4,4 раза быстрее, чем CPython.
PythonNet
Поддерживает – Python 2.6 до Python 3.5
PythonNet предлагает практически бесшовную интеграцию нативной установки Python с .NET CLR. Его подход можно считать обратным подходу, который следует за IronPython.
Вместе с Mono, PythonNet позволяет собственной установке Python в операционной системе, отличной от Windows, работать в среде .NET. Можно работать с PythonNet вместе с IronPython без каких-либо проблем.
Stackless Python
Поддержка – до Python 3.7
CPython и другие популярные интерпретаторы Python зависят от вызова C для своего стека. Однако это не относится к интерпретатору Stackless Python.
Хотя Stackless Python использует стек C, он очищается между вызовами функций. Следовательно, интерпретатор Python не зависит от вызова C для своего стека. Как и CPython, Stackless Python написан с использованием C и Python.
Помимо поддержки потоков, Stackless Python предлагает поддержку каналов связи, сопрограмм, предварительно скомпилированных двоичных файлов, циклического планирования, сериализации задач и тасклетов.
Возможно, самая важная особенность Stackless Python – это микропотоки. Эта функция помогает избежать значительной части издержек, связанных с типичными потоками операционной системы.
Python 2 или Python 3? Какой выбрать?
С появлением Python 3 в 2008 году, всегда был важный вопрос, чтобы спросить, стоит ли придерживаться более старого Python 2 или перейти на борт самого последнего Python 3.
Ответ может быть легким для новичков в изучении Python; Начните с более нового и лучшего Python 3. Однако выбор не так прост для организаций или профессионалов, которые сильно полагаются на Python для своего бизнеса и имеют огромные базы кода Python.
Большинство приложений Python на сегодняшний день использует Python 2.7. Однако переход на Python 3 со временем увеличивается. Отчасти это связано с тем, что Python 2.7 будет получать обновления безопасности только до 2020 года.
Для создания новых приложений Python вы должны использовать Python 3. Если вы работаете с новой библиотекой Python с открытым исходным кодом, вы можете написать ее как для Python 2, так и для Python 3. Это потому, что значительная часть разработчиков Python по-прежнему расставляет приоритеты с использованием Python 2.
Рекомендуется использовать новейший интерпретатор Python 3.x, поскольку каждая новая версия предлагает улучшенные исправления ошибок, безопасность и стандартные модули библиотеки.
Вы должны придерживаться Python 2, только если у вас есть уже существующая кодовая база в Python 2 или эксклюзивная библиотека для нее.
Если вы искренне любите Python 2 и не хотите переходить на Python 3, это нормально. Однако следует понимать, что после 2020 года Python 2 не будет таким же прибыльным вариантом, как сегодня. Итак, начать работу с Python 3 сегодня, наряду с Python 2, может быть хорошей идеей.
Все!
Это завершает список 6 самых популярных интерпретаторов Python, доступных на данный момент. Вы можете работать с любым из них. Однако у каждого из них есть свои льготы. Таким образом, вы должны выбирать мудрее, особенно когда работаете профессионально.
Хорошим знанием может быть знание нескольких интерпретаторов Python. Таким образом, чем больше вы пытаетесь, тем лучше.