Как запустить программу Python в интерактивном или пакетном режиме в Linux, macOS и Windows - Академия Selectel

Как запустить программу в Python

В этой инструкции расскажем, как запустить программу Python в интерактивном или пакетном режиме в Linux, macOS и Windows.

Введение

Python на сегодняшний день является самым востребованным языком программирования. Об этом говорит индекс TIOBE, который производит оценку популярности языков программирования каждый месяц по различным критериям: количество квалифицированных программистов по всему миру, курсов, поисковых запросов на Google, Bing, Wikipedia, Amazon и др. TIOBE составляет рейтинг не самого лучшего языка программирования, а именно самого популярного. 

Архитектура

Чтобы проверить только что написанный код, нужно запустить его на исполнение. Каким именно образом — неважно. Это может быть запуск скрипта через терминал операционной системы, в интерактивном режиме Python или с использованием IDE. В любом случае код будет обработан интерпретатором и пройдет определенный путь.

Интерпретатор в Python и его установка

Python — интерпретируемый язык программирования. Интерпретация означает конвертацию программного кода в байт-код для последующего его выполнения на виртуальной машине. Для такого варианта архитектуры Python интерпретатор работает следующим образом:

  1. При первом запуске кода интерпретатор транслирует инструкции в байт-код и сохраняет его в файле с расширением .pyc;
  2. PVM (Python Virtual Machine) запускает байт-код. При повторном запуске кода интерпретатор отслеживает, были ли внесены какие-либо изменения. Если да, то происходит переход на пункт 1, в противном случае сразу выполняется .pyc файл.

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

Linux

В большинстве Linux дистрибутивов Python по умолчанию установлен в систему. В дальнейшем, говоря о командах для Linux, мы будем показывать их на примере Ubuntu 22.04.2 LTS.

Чтобы проверить наличие Python, введите в терминале:


    python3 --version

Вывод:


    Python 3.10.6

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

Если же вы получили сообщение об ошибке, это может означать лишь то, что python3 еще не установлен. Советуем вам также проверить наличие старой версии — Python2.7, для этого выполните команду:


    python2.7 --version

При ее наличии рекомендуем вам произвести удаление Python2.7 перед тем, как приступать к установке актуальной версии, так как поддержка Python2.7 прекратилась с января 2020 года. В этом вам поможет команда:


    sudo apt-get remove python2.7

Чтобы установить последнюю версию Python введите:


    sudo apt-get update

    sudo apt-get install python3

Если вы хотите использовать какую-то определенную версию вместо последней, необходимо ввести python3.x.x, где x.x — номер версии, например sudo apt-get install python3.9.17.

Снова введите команду python3 —version, чтобы проверить, что Python установился.

Windows

В операционной системе Windows не предустановлен Python ни в одной из существующих версий. Чтобы убедиться в этом, в командной строке или оболочке PowerShell введите ту же команду, что использовалась в Linux:


    python --version

Если вы получаете ошибку ‘python’ is not recognized as an internal or external command, operable program or batch file, то это значит, что Python в вашей системе нет.

Для того чтобы установить Python на Windows, на сайте https://www.python.org/downloads/ нажмите на Download Python.

Запустите скаченный .exe файл. В открывшемся окне необходимо установить флажки на оба пункта, показанные на скриншоте. Продолжите установку так же, как любую другую программу на Windows.

После завершения установки перезапустите командную строку или PowerShell и снова введите:


    python --version

Вывод:


    Python 3.11.4

Теперь в вашей системе установлен интерпретатор Python, а также IDLE (об этом расскажем позднее).

MacOS

Процесс установки Python на MacOS мало чем отличается от процесса его установки на Windows. Первоначально необходимо проверить, есть ли он на вашем устройстве уже. Для этого откройте терминал и введите ту же команду:


    python --version

Если получено сообщение No developer tools were found…, значит Python пока не установлен.

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

Запустите скаченный .pkg файл. Произведите несложную установку, она схожа с установкой на Windows. В вашу систему помимо интерпретатора также будет установлена среда IDLE.

Способы запуска Python-скриптов

Существует 2 режима, в которых может работать Python:

  • интерактивный режим;
  • пакетный режим.

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

Интерактивный режим в CMD для запуска программы Python

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

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

Для запуска такого режима работы, откройте терминал вашей ОС и введите:

Linux


    python3

Windows


    py

или


    python

MacOS


    python3

После запуска интерпретатора в терминале вместо стандартного приглашения вашей ОС вы увидите >>>.

Запуск Python-кода интерактивно и использование IDLE

Интерактивный режим (продолжение)

Для демонстрации работоспособности данного режима введите любую простую команду, например:


    10 + 5

Интерпретатор сразу же выполнит введенный код и выведет результат:


    15

Чтобы выйти из интерактивного режима, нажмите Ctrl + Z, после чего нажмите Enter. Такого же результата можно добиться, введя команды exit() или quit().

Использование IDLE

IDLE (Integrated Development and Learning Environment) — интегрированная среда обучения и разработки на языке Python. Это тот же интерактивный сеанс запуска Python-скриптов, но открывающийся не через терминал, а через собственную оболочку, которая включает в себя функциональность текстового редактора и некоторые дополнительные функции для более удобного написания кода. Так или иначе, ни терминальный интерактивный режим, ни интерактивный режим через IDLE, не являются самыми удобными способами разработки. Их можно использовать для простой отладки кода, но для более сложных задач лучше использовать сторонние IDE. Что такое IDE и чем эта среда отличается от среды IDLE мы расскажем ниже.

При установке Python на Windows и MacOS в комплекте мы также установили и IDLE. Но на Linux Python не предусматривает этого дополнительного компонента при установке по умолчанию.

Linux

Чтобы IDLE появилась в вашей системе на Linux, необходимо дополнительно произвести ее установку:


    sudo apt-get install idle

А для того, чтобы запустить IDLE, необходимо лишь ввести команду:


    idle

Для запуска IDLE на ОС Windows или MacOS найдите в поиске нужное приложение по слову IDLE.

Windows
MacOS

Использование import для скриптов

Различные составляющие исходного кода могут быть описаны в различных пакетах и модулях. Для их подключения к вашему текущему модулю необходимо воспользоваться командой import.

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

В одном сеансе вы можете импортировать один и тот же модуль единожды. Попытка повторного добавления модуля ни к чему не приведет, так как интерпретатор считывает информацию из оригинального файла только при первом импорте, а все последующие разы обращается к кэшу. Поэтому будьте аккуратны, ведь если в процессе одного сеанса отладки вы импортировали, скажем, пакет mylib, затем изменили его, и снова пытаетесь написать import mylib, изменений вы не увидите, пока не введете функцию reload(mylib). У функции reload() есть некоторые особенности работы, поэтому следует использовать ее аккуратно. Ознакомиться со всеми нюансами можно в документации Python.

Функция exec()

Функция exec() позволяет выполнить программу, созданную динамически, которая представляет собой строку или объект кода, например:


    prog = 'for x in range(3):\n res = x*x\n print(res)'

exec(prog)

Вывод:


    0

1

4

Так как с помощью данной функции можно запускать совершенно любой код, следует понимать, что некоторые команды могут быть опасны в использовании. Например, команда os.system (‘rm -rf /’) удалит все файлы из операционной системы.

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

Применение importlib

Пакет importlib в Python предназначен для:

  1. реализации встроенного оператора import;
  2. помощи пользователям в создании настраиваемых импортеров.

С его помощью можно реализовывать, например, проверку импортируемости модуля:


    def mcheck(mname):

mspec = importlib.util.find_spec(mname)

if mspec is None:

     print('Module: {} not found'.format(mname))

     return None

else:

     print('Module: {} can be imported!'.format(mname))

     return mspec

В данном примере была использована функция importlib.util.find_spec(), которая находит спецификацию для указанного модуля. Если таковая найдена, соответственно, модуль может быть импортирован.

Другие часто используемые функции, представленные в importlib:

  • __import__

importlib.__import__(name, globals=None, locals=None, fromlist=(), level=0)

Это и есть реализация встроенного импорта Python.

  • find_loader

importlib.find_loader(name, path=None)

Осуществляет поиск загрузчика для указанного модуля.

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

Запуск кода с помощью runpy

В отличие от import, с помощью runpy можно запускать скрипты Python без импортирования в модуль. Для этого следует использовать команду run_module(), которая обратится к указанному модулю по его имени:


    runpy.run_module(mod_name="name")

Также с помощью runpy можно запустить модуль, обратившись по заданному пути. В таком случае будет использоваться команда run_path():


    runpy.run_path(file_path, init_globals=None, run_name=None)

Динамический запуск

Немного раньше мы описывали функцию exec(), но не упомянули про eval(). Эти две функции на первый взгляд делают одно и то же — выполняют динамически написанный код. Но разница в том, что exec() подходит для выполнения операторов, а eval() — для вычисления выражений.

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

Запуск Python-скрипта из другого кода

Если с помощью exec() можно запускать другой код, то с ее помощью можно запускать и другие Python-скрипты. Для этого необходимо использовать такую конструкцию:


    exec(open('*полный путь до скрипта*').read())
Примеры работы в интерактивном сеансе

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

Пример:


     print("Hello World!\nСейчас мы будем производить расчет площади круга.")

Вывод:


    Hello World!

Сейчас мы будем производить расчет площади круга.


    pi = 3.14

r = input("Введите радиус круга.\nr = ")

Вывод:


    Введите радиус круга.

r =

Введите в ответ на запрос “r = ” любое целое число. В нашем примере это будет число 5.

Ввод:


    r = int(r)

print("Площадь круга с радиусом ", r, " равна ", pi*r**2)

Вывод:


    Площадь круга с радиусом  5  равна  78.5

А теперь попробуйте самостоятельно решить похожую задачу. В случае возникновения трудностей, обратитесь к решению, представленному после задания.

Задание:

Необходимо вычислить длину окружности с радиусом 8.

Решение:

Формула вычисления длины окружности — P = 2 * pi * r.

Решение задачи сводится к заданию и перемножению двух переменных (pi и r), значения которых нам уже известны.


    print("Вычислить длину окружности с радиусом 8.")

pi = 3.14

r = 8

print("Длина окружности с радиусом 8 равна ", 2*pi*r)

Запуск приложения Python в пакетном режиме

Еще одним вариантом запуска (кроме интерактивного режима) Python-скриптов является пакетный режим.

Как запускать скрипт в командной строке/терминале

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

Использование IDE или текстового редактора

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

IDE представляет из себя огромный инструмент разработчика. Существует множество реализаций IDE для различных языков программирования, для Python, например, это PyCharm, Visual Studio, Eclipse. Большинство IDE предлагают дополнительные функции: собственная консоль, инструменты для запуска, средства тестирования и отладки кода, поддержка крупных проектов, подключаемая система контроля версий, установка фреймворков и библиотек, не заходя в терминал.

Мы будем использовать IDE PyCharm. Для примера введите следующий код:


    print(“Hello from IDE!”)

Вы можете сразу проверить написанный код, произведя запуск программы прямо из IDE. Для этого на верхней панели во вкладке Run выберите Run ‘main’. Чтобы сохранить написанный скрипт, необходимо нажать на File -> Save As…, ввести название файла и выбрать необходимый путь для сохранения. Мы разместили файл на рабочем столе и дали ему название firstidescript.py.

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

Команда python и запуск по имени

Windows

Если при сохранении скрипта, написанного в текстовом редакторе, вы не задавали расширение файла .py, то с помощью прямого обращения к данному файлу будет просто открываться блокнот, а не запускаться скрипт. Для запуска такого рода файлов в CMD следует использовать команду python (python3):


    python C:\Users\Administrator\Desktop>pythonnotepad.txt

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


    C:\Users\Administrator\Desktop>pythonidle.py

Чтобы изменять расширение файлов в ОС Windows просто изменяя его в названии, проверьте, что у вас включена такая функция. Для этого перейдите в File Explorer (Мой компьютер или Проводник) и на вкладке View (Вид) активируйте File name extension (Расширение имени файла).

Linux

Для запуска сохраненного скрипта в Ubuntu необходимо указывать путь к интерпретатору Python:


    /usr/bin/python3 *полный путь до скрипта*

Если запуска скрипта не происходит, проверьте, что права для файла выставлены корректно. Если это не так, введите:


      
chmod u+x *полный путь до скрипта*
MacOS

Так же как на Windows, скрипты Python запускаются с помощью команды python (python3). Отличие от Windows — файлы, имеющие расширение .py, не смогут быть запущены без команды python, данную команду нужно использовать всегда.

Запуск модуля

Бывают случаи, когда необходимо исполнить модуль как скрипт. Чтобы сделать это, следует использовать ключ -m при написании команды:


    python -m *полный путь до модуля*

Перенаправление вывода

Если вам требуется вывести из программы какие-либо данные во внешний файл, вам пригодятся операторы > и >>.


    python3 test.py > file.txt

Использование > дает нам возможность направить вывод скрипта pythonidle.py в файл file.txt.

Разница между одной и двумя угловыми скобками состоит в том, что > полностью удаляет информацию в файле, а затем записывает новую, >> — дополняет файл новой информацией без стирания старой. Если файла file.txt еще не существовало, то он будет создан.

Система файлового менеджера

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

Если ваша программа предусматривает вывод на экран какой-либо информации, а вы не успеваете прочитать ее из-за того, что терминал слишком быстро закрывается, дополните код программы, введя в конец input().

Скрипт открывает терминал, выполняет все необходимые действия и почти мгновенно закрывает его, т.к. все задачи выполнены. При использовании input() скрипт будет ожидать ввода любой информации с клавиатуры и нажатия Enter и только после этого скрипт завершит свою работу. Пока Python ожидает ответа на input(), вы сможете прочитать все, что вывел скрипт до этого момента.

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

Заключение

Начать работу с Python — несложно. Мы рассмотрели способы запуска вашего кода, а также рассказали про некоторые особенности языка Python. Если вы только осваиваете Python, советуем также посмотреть нашу подборку из 7 полезных книг по Python для старта и развития, а после того, как разберетесь с языком, начните применять инструменты, описанные в статье про 3 полезных Python-инструмента для упрощения работы с кодом.