В этой статье мы рассмотрим несколько способов запустить скрипт (сценарий) Python. Мы будем запускать скрипты в терминале, в редакторе кода и интерактивно.
Скачивайте книги ТОЛЬКО на русском языке у нас в телеграм канале: PythonBooksRU
Что такое скрипт?
В вычислительной технике код – это язык, преобразованный из человеческого языка в набор “слов”, которые может понять компьютер. Его также называют частью утверждений, которые вместе образуют программу. Простая функция или утверждение также могут считаться кодом.
С другой стороны, скрипт (или сценарий) – это файл, состоящий из логической последовательности инструкций, или файл пакетной обработки, который интерпретируется другой программой вместо процессора компьютера.
Проще говоря, скрипт – это простая программа, хранящаяся в обычном текстовом файле и содержащая код Python. Пользователь может напрямую выполнять этот код. Скрипты также называют программными файлами верхнего уровня.
Модуль – это объект Python с произвольными атрибутами, которые можно связывать и ссылаться на них.
Python – язык программирования или скриптовый язык?
В принципе, все скриптове языки считаются языками программирования. Основное различие между ними заключается в том, что языки программирования компилируются, в то время как скриптовые языки интерпретируются.
Скриптове языки медленнее языков программирования. Поскольку они работают только на подмножестве языков программирования, у них меньше доступа к локальным возможностям компьютера.
Python можно назвать как скриптовым языком, так и языком программирования, поскольку он работает и как компилятор, и как интерпретатор. Стандартный Python может компилировать код Python в байткоды, а затем интерпретировать его так же, как Java и C.
Однако, учитывая исторические отношения между языком программирования общего назначения и скриптовым языком, правильнее было бы сказать, что Python – это язык программирования общего назначения, который прекрасно работает и как скриптовый язык.
Интерпретатор Python
Интерпретатор – это слой программного обеспечения, который работает как мост между программой и аппаратным обеспечением системы для выполнения кода. То есть это приложение, которое отвечает за выполнение скриптов Python.
Интерпретатор Python работает в среде Read-Eval-Print-Loop (REPL):
- читает команду
- оценивает ее
- печатает результат
- зацикливается, и процесс повторяется
Для завершения работы интерпретатора используется команда exit()
или quit()
, в противном случае выполнение продолжается.
Интерпретатор Python запускает код двумя способами:
- В виде скрипта или модуля
- В виде фрагмента кода, написанного в интерактивном сеансе
Запуск интерпретатора Python
Самый простой способ запустить интерпретатор – открыть терминал, а затем использовать интерпретатор из командной строки.
Чтобы открыть интерпретатор из командной строки:
- В Windows командная строка также называется консолью MS-DOS. Более быстрый способ получить к ней доступ – перейти в меню Пуск → Выполнить и набрать
cmd
. - В GNU/Linux доступ к командной строке можно получить с помощью нескольких приложений, таких как xterm, Gnome Terminal или Konsole.
- В MAC OS X доступ к системному терминалу осуществляется через Приложения → Утилиты → Терминал.
Выполнение кода Python в интерактивном режиме
Выполнение кода Python через интерактивную сессию широко распространено. Интерактивная сессия является отличным инструментом разработки для знакомства с языком и позволяет тестировать каждый фрагмент кода Python на ходу.
Чтобы запустить интерактивную сессию Python, введите python
в командной строке или терминале и нажмите клавишу ENTER на клавиатуре.
Пример того, как это сделать в Windows:
C:\users>python Python 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 23:09:28) [MSC v.1916 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license()" for more information. >>>
Символы >>>
в терминале представляют собой стандартное приглашение командной строки. Если вы не видите этих символов после запуска команды python
, вам необходимо переустановить Python в вашей системе.
Примечание редакции: об установке Python читайте в статье “Как установить Python на Windows 10 или 11”.
Утверждения, которые вы пишете при работе в интерактивном сеансе, оцениваются и выполняются немедленно:
print('HELLO WORLD!') HELLO WORLD! 2 + 3 5 print('Welcome to the world of PYTHON') Welcome to the world of PYTHON
Единственный недостаток – когда вы закрываете интерактивную сессию, код больше не существует.
Как запустить скрипт Python с помощью интерпретатора
Термином Python Execution Model обозначается весь многоэтапный процесс выполнения сценария Python.
Сначала утверждения или выражения вашего сценария последовательно обрабатываются интерпретатором.
Затем код компилируется в форму набора инструкций, называемую байткодом. По сути, код преобразуется в низкоуровневый язык, известный как байткод. Это промежуточный, машинно-независимый код, который оптимизирует процесс выполнения кода. Благодаря этому интерпретатор игнорирует этап компиляции при выполнении кода в следующий раз.
Наконец, интерпретатор передает код на выполнение. Виртуальная машина Python (PVM) является завершающим этапом процесса интерпретации Python. Это часть среды Python, установленной в вашей системе. PVM загружает байткод в среду выполнения Python, считывает каждую операцию и выполняет их в соответствии с указаниями. Это компонент, который фактически выполняет ваши сценарии.
Как запустить скрипт Python с помощью командной строки
Самый востребованный способ написания программ на Python – это использование обычного текстового редактора. Код, написанный в интерактивном сеансе Python, теряется после его закрытия, хотя и позволяет пользователю написать много строк кода. Но если написать код в текстовом редакторе, его можно сохранить в виде файла. В Windows файлы сценариев Python имеют расширение .py.
Если вы только начинаете работать с Python, вы можете использовать такие простые в использовании редакторы, как Sublime или Notepad++, или любые другие.
Примечание редакции: со списком доступных редакторов кода можно ознакомиться, прочитав статью “Лучшие редакторы кода и IDE для Python”.
Теперь вам нужно создать тестовый скрипт. Для этого откройте ваш текстовый редактор и напишите следующий код:
print('Hello World!')
Затем сохраните файл на рабочем столе с именем first_script.py или любым другим, которое вам нравится. Помните, что вам нужно дать файлу расширение .py
.
Вы получили скрипт Python. А теперь рассмотрим, как можно его запустить.
1. Использование команды python
Самый простой и легкий способ запустить скрипт Python в командной строке – это использовать команду python
. Вам нужно открыть командную строку и ввести слово python
, после чего указать путь к файлу вашего скрипта, как показано ниже:
python first_script.py Hello World!
Затем вы нажимаете на кнопку ENTER, и все. Вы видите на экране фразу Hello World! Поздравляю! Вы только что запустили свой первый сценарий Python.
Однако, если вы не получили результат, возможно, вам стоит проверить системный PATH
и место, куда вы сохранили файл. Если скрипт все равно не запускается, переустановите Python в вашей системе и попробуйте снова.
2. Перенаправление вывода
В Windows и Unix-подобных системах есть процесс, называемый перенаправлением потока. Стандартный системный вывод – на экран. Как в предыдущем примере, когда вы запустили python first_script.py
в командной строке и на экран вывелось Hello World!
. Но вы можете перенаправить вывод запущенной команды в какой-нибудь файл. Это полезно для сохранения вывода в другом файле для последующего анализа.
Пример того, как это можно сделать:
python first_script.py > output.txt
Происходит следующее: результат работы вашего сценария Python перенаправляется в файл output.txt. Если файл output.txt не существует, он будет создан. А если такой файл есть, его содержимое заменится на результаты работы вашего сценария.
3. Запуск модулей с опцией -m
Модуль – это файл, содержащий код. Он позволяет логически упорядочить код Python. В модуле определяется функции, классы и переменные, а также он может содержать запускаемый код.
Если вы хотите запустить модуль Python, к вашим услугам множество опций командной строки, которые можно применять в зависимости от потребностей пользователя. Одной из них является следующая команда:
python -m <module-name>
Она ищет имя модуля в sys.path и запускает его содержимое как __main__
:
python -m first_script Hello World!
Обратите внимание, что module-name
– это объект модуля, а не какая-либо строка.
4. Использование имени файла скрипта
Windows использует системные регистры и ассоциацию файлов для запуска сценариев Python. Операционная система сама определяет программу, необходимую для запуска конкретного файла. Вам нужно просто ввести имя файла, содержащего код.
Пример того, как это сделать с помощью командной строки:
C:\Users\Local\Python\Python37> first_script.py Hello World!
В системах GNU/Linux необходимо добавить в скрипте строку перед текстом – #!/usr/bin/env python
. Python не считает эту строку частью вашего кода, но она помогает системе решить, какую программу следует использовать для запуска файла.
С комбинации символов #!
, известной как hashbang или shebang, начинается строка, за которой следует путь к интерпретатору.
Наконец, чтобы запустить скрипт в системах GNU/Linux, добавьте файлу разрешение на выполнение, а затем просто введите имя файла (путь к файлу) в командной строке:
# Добавление прав на выполнение chmod +x first_script.py # Запуск скрипта по имени ./first_script.py Hello World!
Если это не сработает, проверьте, правильно ли вы указали путь к скрипту.
Как запустить скрипт Python в интерактивном режиме
Как мы обсуждали ранее, запуск скриптов Python в интерактивной сессии является наиболее распространенным способом запуска скриптов и предоставляет широкий спектр возможностей.
Использование импорта
Импорт модуля означает загрузку его содержимого, чтобы впоследствии к нему можно было получить доступ и использовать. Это самый обычный способ обращения к механизму импорта. Он аналогичен #include
в C или C++. Используя импорт, код Python в одном модуле получает доступ к коду в другом модуле.
Реализация импорта:
import first_script Hello World!
Какой-либо вывод вы увидите только если модуль содержит вызовы функций, методов или других операторов, которые генерируют видимый вывод.
Важно отметить, что опция импорта работает только один раз за сеанс. Это связано с тем, что такие операции являются дорогостоящими.
Чтобы этот метод работал эффективно, вы должны хранить файл с кодом Python в текущем рабочем каталоге, а также этот файл должен находиться в пути поиска модулей Python (PMSP). PMSP – это место, куда импортируются модули и пакеты.
Вы можете выполнить приведенный ниже код, чтобы узнать, что находится в вашем текущем PSMP:
import sys for path in sys.path: print(path)
Вы получите список каталогов и .zip-файлов, в которые импортированы ваши модули и пакеты:
\Users\Local\Python37\Lib\idlelib \Users\Local\Python37\python37.zip \Users\Local\Python37\DLLs \Users\Local\Python37\lib \Users\Local\Python37 \Users\Local\Python37\lib\site-packages
Использование importlib
importlib – это модуль, который является реализацией оператора import
в коде Python. Он содержит модуль import_module, работа которого заключается в выполнении любого модуля или скрипта путем имитации операции импорта.
Пример выполнения этой операции:
import importlib importlib.import_module('first_script') Hello World! <module 'first_script' from '\Users\Local\Python37\first_script.py'>
importlib.reload()
используется для повторного импорта модуля, поскольку вы не можете использовать import
для запуска модуля во второй раз. Даже если вы используете import
повторно, это ничего не даст. importlib.reload()
полезен, когда вы хотите откорректировать и протестировать свои изменения без выхода из текущей сессии.
Следующий код показывает это:
import first_script # Первый import Hello World! import first_script import importlib # Второй import не делает ничего importlib.reload(first_script) Hello World! <module 'first_script' from '\Users\Local\Python37\\first_script.py'>
Однако в качестве аргумента reload()
можно использовать только объект модуля, а не любую строку. Если вы используете в качестве аргумента строку, будет выдана ошибка TypeError:
importlib.reload(first_script)
Вывод:
Traceback (most recent call last): ... ... raise TypeError("reload() argument must be a module") TypeError: reload() argument must be a module
Использование runpy.run_module() и runpy.run_path()
В стандартной библиотеке Python есть модуль runpy. run_module()
– это функция в runpy, работа которой заключается в выполнении модулей без их предварительного импорта.
Модуль находится с помощью import
, а затем выполняется. Первый аргумент run_module()
должен содержать строку:
import runpy runpy.run_module(mod_name='first_script') Hello World! {'__name__': 'first_script', ... '_': None}}
В runpy есть еще одна функция – run_path()
, которая позволяет вам запустить модуль, указав его местоположение. Пример:
import runpy runpy.run_path(file_path='first_script.py') Hello World! {'__name__': '<run_path>', ... '_': None}}
Обе функции возвращают словарь globals
из выполняемого модуля.
Как запустить скрипт Python при помощи exec()
Помимо наиболее часто используемых способов запуска скриптов Python существуют и другие. Один из них – использование встроенной функции exec()
. Она используется для динамического выполнения кода Python, будь то строка или объектный код.
Пример применения функции exec()
:
exec(open('first_script.py').read()) Hello World!
Использование py_compile
py_compile – это модуль, который ведет себя подобно оператору import
. Он генерирует две функции: одну для генерации байткода из исходного файла и вторую для вызова исходного файла как сценария.
С помощью этого модуля вы можете скомпилировать свой скрипт Python:
import py_compile py_compile.compile('first_script.py' '__pycache__\\first_script.cpython-37.pyc'
py_compile создает новый подкаталог с именем __pycache__
, если он еще не существует. Внутри этого подкаталога создается версия файла скрипта в формате Compiled Python File (с расширением .pyc
). Когда вы откроете файл .pyc
, вы сможете увидеть вывод вашего сценария Python.
Как запустить скрипт Python с помощью IDE или текстового редактора
Интегрированная среда разработки (IDE) – это приложение, которое позволяет разработчику создавать программное обеспечение в интегрированной среде в дополнение к необходимым инструментам.
Для написания, отладки, изменения и запуска ваших модулей и сценариев вы можете воспользоваться Python IDLE – IDE по умолчанию в стандартном дистрибутиве Python. Можно использовать и другие IDE или редакторы кода, такие как Spyder, PyCharm, Eclipse и Jupyter Notebook, позволяющие запускать ваши скрипты внутри их среды.
Чтобы запустить скрипт Python из IDE или текстового редактора, сначала необходимо создать проект. После создания проекта добавьте в него свой файл .py
или просто напишите его прямо в IDE. Наконец, запустите этот файл, и вы сможете увидеть результат на экране.
Как запустить скрипт Python из файлового менеджера
Если вы хотите запустить свой Python-скрипт в файловом менеджере, все, что вам нужно сделать, это дважды щелкнуть по значку файла. Этот вариант в основном используется на этапе производства после того, как вы выпустили исходный код.
Однако для этого необходимо выполнить некоторые условия.
В Windows для запуска скрипта двойным щелчком по нему необходимо сохранить файл скрипта с расширением .py
для python.exe и .pyw
для pythonw.exe.
Если вы используете командную строку для запуска вашего сценария, то, скорее всего, вы можете столкнуться с ситуацией, когда на экране появится черное окно. Чтобы избежать этого, включите в хвост сценария оператор input('Enter')
. Это приведет к выходу из программы только при нажатии клавиши ENTER. Обратите внимание, что функция input()
будет работать только в том случае, если в вашем коде нет ошибок.
В GNU/Linux и других Unix-подобных системах ваш сценарий Python должен содержать строку с hashbang и иметь права на выполнение. В противном случае трюк с двойным щелчком не сработает в файловом менеджере.
Хотя выполнить сценарий простым двойным щелчком по файлу легко, этот вариант не считается целесообразным из-за ограничений и факторов зависимости, таких как операционная система, файловый менеджер, разрешения на выполнение, а также ассоциации файлов. Поэтому рекомендуется использовать эту опцию только после того, как код отлажен и готов к выходу на рынок.
Заключение
Работа со скриптами имеет свои преимущества: они просты в освоении и использовании, быстро редактируются и выполняются, интерактивны, функциональны и так далее. Они также используются для автоматизации сложных задач в упрощенной манере.
Из этой статьи вы узнали, как запускать скрипты Python с помощью:
- терминала или командной строки операционной системы
- интерактивной сессии Python
- вашей любимой IDE или текстового редактора
- системного файлового менеджера
Научившись разным техникам запуска скриптов, вы будете чувствовать себя более комфортно, работая с большими и более сложными средами Python, что улучшит процесс разработки и повысит эффективность.
Перевод статьи Priyankur Sarkar «How To Run Your Python Scripts».
Пингбэк: Как создать Telegram-бота с помощью Python - pythonturbo
Пингбэк: Как скачать видео с YouTube при помощи Python
Пингбэк: Как обрабатывать текстовые файлы в Python 3