Что такое интерпретатор python
Перейти к содержимому

Что такое интерпретатор python

  • автор:

1. Introduction¶

This reference manual describes the Python programming language. It is not intended as a tutorial.

While I am trying to be as precise as possible, I chose to use English rather than formal specifications for everything except syntax and lexical analysis. This should make the document more understandable to the average reader, but will leave room for ambiguities. Consequently, if you were coming from Mars and tried to re-implement Python from this document alone, you might have to guess things and in fact you would probably end up implementing quite a different language. On the other hand, if you are using Python and wonder what the precise rules about a particular area of the language are, you should definitely be able to find them here. If you would like to see a more formal definition of the language, maybe you could volunteer your time — or invent a cloning machine :-).

It is dangerous to add too many implementation details to a language reference document — the implementation may change, and other implementations of the same language may work differently. On the other hand, CPython is the one Python implementation in widespread use (although alternate implementations continue to gain support), and its particular quirks are sometimes worth being mentioned, especially where the implementation imposes additional limitations. Therefore, you’ll find short “implementation notes” sprinkled throughout the text.

Every Python implementation comes with a number of built-in and standard modules. These are documented in The Python Standard Library . A few built-in modules are mentioned when they interact in a significant way with the language definition.

1.1. Alternate Implementations¶

Though there is one Python implementation which is by far the most popular, there are some alternate implementations which are of particular interest to different audiences.

Known implementations include:

This is the original and most-maintained implementation of Python, written in C. New language features generally appear here first.

Python implemented in Java. This implementation can be used as a scripting language for Java applications, or can be used to create applications using the Java class libraries. It is also often used to create tests for Java libraries. More information can be found at the Jython website.

This implementation actually uses the CPython implementation, but is a managed .NET application and makes .NET libraries available. It was created by Brian Lloyd. For more information, see the Python for .NET home page.

An alternate Python for .NET. Unlike Python.NET, this is a complete Python implementation that generates IL, and compiles Python code directly to .NET assemblies. It was created by Jim Hugunin, the original creator of Jython. For more information, see the IronPython website.

An implementation of Python written completely in Python. It supports several advanced features not found in other implementations like stackless support and a Just in Time compiler. One of the goals of the project is to encourage experimentation with the language itself by making it easier to modify the interpreter (since it is written in Python). Additional information is available on the PyPy project’s home page.

Each of these implementations varies in some way from the language as documented in this manual, or introduces specific information beyond what’s covered in the standard Python documentation. Please refer to the implementation-specific documentation to determine what else you need to know about the specific implementation you’re using.

1.2. Notation¶

The descriptions of lexical analysis and syntax use a modified BNF grammar notation. This uses the following style of definition:

The first line says that a name is an lc_letter followed by a sequence of zero or more lc_letter s and underscores. An lc_letter in turn is any of the single characters ‘a’ through ‘z’ . (This rule is actually adhered to for the names defined in lexical and grammar rules in this document.)

Each rule begins with a name (which is the name defined by the rule) and ::= . A vertical bar ( | ) is used to separate alternatives; it is the least binding operator in this notation. A star ( * ) means zero or more repetitions of the preceding item; likewise, a plus ( + ) means one or more repetitions, and a phrase enclosed in square brackets ( [ ] ) means zero or one occurrences (in other words, the enclosed phrase is optional). The * and + operators bind as tightly as possible; parentheses are used for grouping. Literal strings are enclosed in quotes. White space is only meaningful to separate tokens. Rules are normally contained on a single line; rules with many alternatives may be formatted alternatively with each line after the first beginning with a vertical bar.

In lexical definitions (as the example above), two more conventions are used: Two literal characters separated by three dots mean a choice of any single character in the given (inclusive) range of ASCII characters. A phrase between angular brackets ( <. > ) gives an informal description of the symbol defined; e.g., this could be used to describe the notion of ‘control character’ if needed.

Even though the notation used is almost the same, there is a big difference between the meaning of lexical and syntactic definitions: a lexical definition operates on the individual characters of the input source, while a syntax definition operates on the stream of tokens generated by the lexical analysis. All uses of BNF in the next chapter (“Lexical Analysis”) are lexical definitions; uses in subsequent chapters are syntactic definitions.

What is Interpreter? Explain How python interpreter works.

An interpreter is a kind of program that executes other programs. When you write Python programs , it converts source code written by the developer into intermediate language which is again translated into the native language / machine language that is executed.

The python code you write is compiled into python byte code, which creates file with extension .pyc . The byte code compilation happened internally, and almost completely hidden from developer. Compilation is simply a translation step, and byte code is a lower-level, and platform-independent , representation of your source code. Roughly, each of your source statements is translated into a group of byte code instructions. This byte code translation is performed to speed execution byte code can be run much quicker than the original source code statements.

The .pyc file , created in compilation step, is then executed by appropriate virtual machines. The Virtual Machine just a big loop that iterates through your byte code instructions, one by one, to carry out their operations. The Virtual Machine is the runtime engine of Python and it is always present as part of the Python system, and is the component that truly runs the Python scripts . Technically, it’s just the last step of what is called the Python interpreter.

Настройка интерпретатора Python

Чтобы работать с кодом Python в PyCharm, вам необходимо настроить по крайней мере один интерпретатор Python. Вы можете использовать системный интерпретатор, доступный при установке Python. Вы также можете создать виртуальную среду Virtualenv, Pipenv или Conda. Виртуальная среда состоит из базового интерпретатора и установленных пакетов.

С помощью PyCharmProfessional вы также можете настроить интерпретаторы для выполнения кода Python в удаленных средах: SSH, Vagrant, WSL (только для Windows), Docker и DockerCompose.

Интерпретаторы Python

При настройке интерпретатора Python необходимо указать путь к исполняемому файлу Python в вашей системе. Итак, перед настройкой интерпретатора Python вам необходимо убедиться, что вы загрузили Python и установили его в своей системе, и вы знаете путь к нему.

Вы можете создать несколько интерпретаторов Python на основе одного и того же исполняемого файла Python. Это полезно, когда вам нужно создать различные виртуальные среды для разработки различных типов приложений. Например, вы можете создать одну виртуальную среду на основе Python 3.6 для разработки приложений Django и другую виртуальную среду на основе того же Python 3.6 для работы с научными библиотеками.

Интерпретаторы Python могут быть настроены для нового проекта или для текущего проекта (вы можете создать новый интерпретатор или использовать один из существующих ).

Настройка существующего интерпретатора Python

В любое время вы можете переключить интерпретатор Python либо с помощью селектора интерпретаторов Python, либо в настройках/настройках проекта.

Селектор интерпретатора Python находится в строке состояния. Это самый удобный и быстрый способ переключения интерпретатора Python. Просто нажмите на него и выберите целевой интерпретатор:\

Настройка интерпретатора Python

Измените интерпретатор Python в настройках проекта

  1. Нажмите Ctrl+Alt+S, чтобы открыть настройки IDE, и выберите Проект | Интерпретатор Python.
  2. Разверните список доступных переводчиков и нажмите ссылку «Показать все». Затем, щёлкните значок Настроить интерпретатор проекта и выберите «Показать все». Настройка интерпретатора Python
  3. Выберите целевой интерпретатор. Настройка интерпретатора Python

Когда PyCharm прекращает поддерживать любую из устаревших версий Python, соответствующий интерпретатор Python помечается как неподдерживаемый.

Примечание: При изменении интерпретатора SSH PyCharm отображает параметры соответствующей конфигурации развертывания. Не рекомендуется выбирать опцию SSH, так как она не позволяет синхронизировать файлы и является частью устаревшей реализации.

Лучшие интерпретаторы Python 2021 года

Нет никаких сомнений в том, что Python является одним из самых популярных языков программирования. За последние несколько лет он быстро завоевал популярность среди мирового сообщества разработчиков. CPython является интерпретатором Python по умолчанию, тем не менее, доступны и другие варианты.

Python — это язык программирования высокого уровня, что означает, что его код написан в удобочитаемой форме. Тем не менее, компьютер не понимает язык высокого уровня, ему требуется переводчик для преобразования кода высокого уровня в машинный код, чтобы ОС могла выполнять то же самое. Вот тут-то и появляется переводчик.


Python использует интерпретатор в качестве инструмента перевода для компьютера для перевода и выполнения кода высокого уровня. Когда мы устанавливаем Python в нашей системе, мы устанавливаем интерпретатор Python, облегчающий чтение и выполнение Python.

В этой статье мы составили шорт-лист из 5 лучших интерпретаторов Python, которые идеально подходят для использования с языком программирования высокого уровня. Но перед этим давайте поговорим о переводчике.

Что такое интерпретатор?

Интерпретатор-это компьютерная программа, которая непосредственно выполняет программный код, не меняя его на машинный язык или байт-код. В отличие от компилятора, интерпретатор не создает отдельный файл для байтового кода, вместо этого он непосредственно выполняет исходный код.

5 Лучших вариантов интерпретатора Python (Реализация Python)

Оригинальная реализация Python, которая широко используется сообществом Python и которая присутствует на официальном сайте python, реализована с использованием языка программирования C. Вот почему мы называем его CPython.

Как и CPython, существует множество других реализаций – интерпретаторов – доступных для языка программирования Python. Очевидно, что не все из них хороши в использовании. Итак, вот наш список из 5 лучших интерпретаторов Python на 2021 год, которые вы можете изучить и использовать для расширения своих знаний по python:

  • CPython
  • PyPy
  • StacklessPython
  • Jython
  • IronPython

Давайте пройдем вперед и подробно обсудим каждый из них:

CPython (интерпретатор Python по умолчанию)

GitHub: https://github.com/python/cpython
Поддерживается версиями Python 3.x

Он поставляется в качестве интерпретатора Python по умолчанию, если вы устанавливаете Python с официального сайта. Поступая таким образом, вы в конечном итоге устанавливаете CPython в качестве интерпретатора.

CPython написан на языках программирования C и Python, вот как он получил свое название. Кроме того, если мы посмотрим на общее использование Python по всему миру, CPython является наиболее широко используемой реализацией языка программирования высокого уровня.

Разработанный основными разработчиками и сообществом Python, CPython поддерживается Фондом программного обеспечения Python. Хотя это интерпретатор, он также действует как компилятор. Это потому, что он выполняет некоторые операции компиляции, преобразует код Python в байт-код, а затем использует интерпретатор для их выполнения. Все это происходит виртуально, поэтому технически это не компилятор.

Итак, если вы пишете код Python, которым хотите поделиться с сообществом в качестве проекта с открытым исходным кодом, вы должны ориентироваться на пользователей CPython, потому что он, очевидно, имеет самый широкий охват.


Поддерживается версиями Python 2.x и 3.x

PyPy — это мощная, быстрая и полностью совместимая реализация языков программирования Python. Кроме того, он считается альтернативой № 1 для CPytho. По сравнению с CPython, PyPy быстрее, потому что это компилятор just-in-time (JIT). CPython, напротив, является интерпретатором. Любой код Python может работать на PyPy, за исключением того, который зависит от расширения CPython.

Хотя PyPy является интерпретатором, внутренне он использует мета-трассировку, метод, который превращает интерпретатор в компилятор точно в срок. Работать с интерпретаторами очень легко, но они обычно выполняют код медленнее, чем компиляторы. Следовательно, PyPy решает эту проблему для интерпретаторов Python, превращаясь в JIT-компилятор.

PyPy настоятельно рекомендуется для тех, кто хочет повысить производительность своей программы. Более того, если вы запустите свою программу на Python с помощью PyPy, она будет потреблять меньше памяти, чем CPython.


РепоPythonGitHub без стека: https://github.com/stackless-dev/stackless
Поддерживается версиями Python 3.x

StacklessPython — это еще один мощный интерпретатор языка программирования python. Как и CPython, он также написан на C и Python. Как следует из названия, StacklessPython избегает стека вызовов C. Стек вызовов-это структура данных стека, которая содержит подпрограммы и определяет поток управления вызовами функций. Хотя StacklessPython избегает вызовов стека, он использует стек для вызовов функций.

В дополнение к другим функциям, StacklessPython также добавляет поддержку сопрограмм, каналов связи и сериализации задач. Микро-поток — самая важная особенность StacklessPython. Это позволяет избежать значительной части накладных расходов, связанных с обычными потоками операционной системы.


Интерпретаторы Python-это различные реализации Python для облегчения разработки в соответствии с различными языками программирования. CPython — это широко используемая реализация/интерпретатор, предлагаемая официальнымPython.

Для разработчика python также очень важно знать другие реализации Python. Мы надеемся, что эта статья о лучших 5 интерпретаторах Python дала вам достаточно знаний о различных интерпретаторах python, в частности, и о работе интерпретатора python в целом.

Введение в Python

Python представляет популярный высокоуровневый язык программирования, который предназначен для создания приложений различных типов. Это и веб-приложения, и игры, и настольные программы, и работа с базами данных. Довольно большое распространение питон получил в области машинного обучения и исследований искусственного интеллекта.

Впервые язык Python был анонсирован в 1991 году голландским разработчиком Гвидо Ван Россумом. С тех пор данный язык проделал большой путь развития. В 2000 году была издана версия 2.0, а в 2008 году — версия 3.0. Несмотря на вроде такие большие промежутки между версиями постоянно выходят подверсии. Так, текущей актуальной версией на момент написания данного материала является 3.7. Более подробную информацию о всех релизах, версиях и изменения языка, а также собственно интерпретаторы и необходимые утилиты для работы и прочую полезную информацию можно найти на официальном сайте https://www.python.org/.

Основные особенности языка программирования Python:

  • Скриптовый язык. Код программ определяется в виде скриптов.
  • Поддержка самых различных парадигм программирования, в том числе объектно-ориентированной и функциональной парадигм.
  • Интерпретация программ. Для работы со скриптами необходим интерпретатор, который запускает и выполняет скрипт.Выполнение программы на Python выглядит следующим образом. Сначала мы пишим в текстовом редакторе скрипт с набором выражений на данном языке программирования. Передаем этот скрипт на выполнение интерпретатору. Интерпретатор транслирует код в промежуточный байткод, а затем виртуальная машина переводит полученный байткод в набор инструкций, которые выполняются операционной системой.Здесь стоит отметить, что хотя формально трансляция интерпретатором исходного кода в байткод и перевод байткода виртуальной машиной в набор машинных команд представляют два разных процесса, но фактически они объединены в самом интерпретаторе.
  • Портативность и платформонезависимость. Не имеет значения, какая у нас операционная система — Windows, Mac OS, Linux, нам достаточно написать скрипт, который будет запускаться на всех этих ОС при наличии интерпретатора
  • Автоматическое управление памяти
  • Динамическая типизация

Python — очень простой язык программирования, он имеет лаконичный и в то же время довольно простой и понятный синтаксис. Соответственно его легко изучать, и собственно это одна из причин, по которой он является одним из самых популярных языков программирования именно для обучения. В частности, в 2014 году он был признан самым популярным языком программирования для обучения в США.

Python также популярен не только в сфере обучения, но в написании конкретных программ в том числе коммерческого характера. В немалой степени поэтому для этого языка написано множество библиотек, которые мы можем использовать.

Кроме того, у данного языка программирования очень большое коммьюнити, в интернете можно найти по данному языку множество полезных материалов, примеров, получить квалифицированную помощь специалистов.

Для создания программ на Python нам потребуется интерпретатор. Для его установки перейдем на сайт https://www.python.org/ и на главной станице в секции Downloads найдем ссылку на загрузку последней версии языка:

Перейдем по ссылке к странице с описанием последней версии языка. Ближе к низу на ней можно найти список дистрибутивов для разных операционных систем. Выберем нужный нам пакет и загрузим его. Например, в моем случае это ОС Windows 64-х разрядная, поэтому я выбираю ссылку на пакет Windows x86-64 executable installer. После загрузки дистрибутива установим его.

Соответственно для MacOS можно выбрать пункт macOS 64-bit installer.

На ОС Windows при запуске инсталлятора запускает окно мастера установки:

Здесь мы можем задать путь, по которому будет устанавливаться интерпретатор. Оставим его по умолчанию, то есть C:\Users\[имя_пользователя]\AppData\Local\Programs\Python\Python36\.

Кроме того, в самом низу отметим флажок «Add Python 3.6 to PATH», чтобы добавить путь к интерпретатору в переменные среды.

После установки в меню Пуск на ОС Windows мы сможем найти иконки для доступа к разным утилитам питона:

Здесь утилита Python 3.7 (64-bit) представляет интерпретатор, в котором мы можем запустить скрипт. В файловой системе сам файл интерпретатора можно найти по пути, по которому производилась установка. На Windows по умолчанию это путь C:\Users\[имя_пользователя]\AppData\Local\Programs\Python\Python37, а сам интерпретатор представляет файл python.exe. На ОС Linux установка производится по пути /usr/local/bin/python3.7.

После установки интерпретатора, как было описано в прошлой теме, мы можем начать создавать приложения на Python. Итак, создадим первую простенькую программу.

Как было сказано в прошлой теме, программа интерпретатора, если при установке не был изменен адрес, по умолчанию устанавливается на Linux по пути usr/local/bin/python37, а на Windows по пути C:\Users\[имя_пользователя]\AppData\Local\Programs\Python\Python37\ и представляет файл под названием python.exe.

Запустим интерпретатор и введем в него следующую строку:

И консоль выведет строку «hello world»:

Для этой программы использовался метод print(), который выводит некоторую строку на консоль.

В реальности, как правило, программы определяются во внешних файлах-скриптах и затем передаются интерпретатору на выполнение. Поэтому создадим файл программы. Для этого на диске C или где-нибудь в другом месте файловой системы определим для скриптов папку python. А в этой папке создадим новый текстовый файл, который назовем hello.py. По умолчанию файлы с кодом на языке Python, как правило, имеют расширение py.

Откроем этот файл в любом текстовом редакторе и добавим в него следующий код:

name = input(«Введите имя: «)

name = input(«Введите имя: «) print(«Привет,», name)

Скрипт состоит из двух строк. Первая строка с помощью метода input() ожидает ввода пользователем своего имени. Введенное имя затем попадает в переменную name.

Вторая строка с помощью метода print() выводит приветствие вместе с введенным именем.

Теперь запустим командную строку/терминал и с помощью команды cd перейдем к папке, где находится файл с исходным кодом hello.py (например, в моем случае это папка C:\python). Далее вначале введем полный путь к интерпретатору, а затем полный путь к файлу скрипта:

К примеру, в моем случае в консоль надо будет вести:

Но если при установке была указана опция «Add Python 3.7 to PATH», то есть путь к интерпретатору Python был добавлен в переменные среды, то вместо полного пути к интерпретатору можно просто написать python:

Варианты с обоими способами запуска:

В итоге программа выведет приглашение к вводу имени, а затем приветствие.

В прошлой теме было описано создание простейшего скрипта на языке Python. Для создания скрипта использовался текстовый редактор. В моем случае это был Notepad++. Но есть и другой способ создания программ, который представляет использование различных интегрированных сред разработки или IDE.

IDE предоставляют нам текстовый редактор для набора кода, но в отличие от стандартных текстовых редакторов, IDE также обеспечивает полноценную подсветку синтаксиса, автодополнение или интеллектуальную подсказку кода, возможность тут же выполнить созданный скрипт, а также многое другое.

Для Python можно использовать различные среды разработки, но одной из самых популярных из них является среда PyCharm, созданная компанией JetBrains. Эта среда динамично развивается, постоянно обновляется и доступна для наиболее распространенных операционных систем — Windows, MacOS, Linux.

Правда, она имеет одно важное ограничение. А именно она доступна в двух основных вариантах: платный выпуск Professional и бесплатный Community. Многие базовые возможности доступны и в бесплатном выпуске Community. В то же время ряд возможностей, например, веб-разработка, доступны только в платном Professional.

В нашем случае воспользуемся бесплатным выпуском Community. Для этого перейдем на страницу загрузки и загрузим установочный файл PyCharm Community. После загрузки выполним его установку.

После завершения установки запустим программу. При первом запуске открывается начальное окно:

Создадим проект и для этого выберем пункт Create New Project.

Далее нам откроется окно для настройки проекта. В поле Location необходимо указать путь к проекту. В моем случае проект будет помещаться в папку HelloApp. Собственно название папки и будет названием проекта.

Следует отметить, что PyCharm позволяет разграничить настройки проектов. Так, по умолчанию выбрано поле New Environment Using, что позволяет установить версию интерпретатора для конкретного проекта. Затем все устанавливаемые дополнительные пакеты будут касаться только текущего проекта. Это удобно, если мы создаем несколько проектов, но каждый из которых рабоает с какой-то специфической версией интерпретатора. Но в качестве альтернативы мы также можем выбрать поле Existing Interpreter и задать путь к файлу интерпретатора глобально для всех проектов.

В реальности для первого простейшего приложения на PyCharm не имеет значения, как будет установлен интерпертатор. Однако данном же случае оставим выбранный по умолчанию флажок New Environment Using и под ним в поле Base Interpreter укажем путь к файлу интерпретатора, установка которого рассматривалась в первой теме.

И после установки всех путей нажмем на кнопку Create для создания проекта.

После этого будет создан пустой проект:

Теперь создадим простейшую программу. Для этого нажмем на название проекта правой кнопкой мыши и в появившемся контекстном меню выберем

New -> Python File.

Затем откроется окно, в котором надо будет указать название файла. Пусть файл называется hello:

В созданный файл введем следующие строки:

name = input(«Введите ваше имя: «)

Для запуска скрипта нажмем на него правой кнопкой мыши и в контекстном меню выберем Run ‘hello’ (либо перейдем в меню Run и там нажмем на подпункт Run. ):

После этого внизу IDE отобразится окно вывода, где надо будет ввести имя и где после этого будет выведено приветствие:

Одной из сред разработки, которая позволяет работать с Python, является Visual Studio. Преимуществом данной IDE по сравнению, скажем, с PyCharm, следует отметить прежде всего то, что в ее бесплатной редакции VS 2017 Community бесплатно доступны ряд функций и возможностей, которые в том же PyCharm доступны только в платной версии Professional Edition. Например, это веб-разработка, в том числе с помощью различных фреймворков. В то же время средства ля разработки на Python в Visual Studo доступны пока только в версии для Windows.

Итак, загрузим установочный файл Visual Studio 2017 Community по ссылке https://www.visualstudio.com/ru/thank-you-downloading-visual-studio/?sku=Community&rel=15. После запуска установочного файла выберем среди устанавливаемых опций Python:

После установки Visual Studio запустим ее. В меню выберем пунт File (Файл) -> New (Создать) -> Project (Проект), и перед нами откроется окно создания нового проекта. В этом окне в левом древовидном меню мы можем перейти к языку Python:

Выбрав слева Python, в центральной части окна мы можем увидеть богатую палитру типов проектов, которые мы можем создавать для разработке на данном языке программирования. Это и веб-разработка, и машинное обучение, и проекты для работы с облаком, проекты настольных приложений и т.д. В данном же случае выберем в качестве типа проекта Python Application, то есть тип простых консольных приложений, и назовем новый проект HelloApp. Нажмем на кнопку OK, и Visual Studio создаст новый проект:

Справа в окне Solution Explorer (Обозреватель решений) можно увидеть структуру проекта. По умолчанию здесь мы можем увидеть следующие элементы:

Python Environments: здесь можно увидеть все используемые среды, в частности, здесь можно найти сведения о компиляторе, который используется.

References: в этот узел помещаются все внешние зависимости, которые используются текущим проектом

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *