Инструменты Python: работа с интерпретатором через командную строку
Основные способы запуска интерпретатора Python
Наиболее распространённый способ выполнения кода Python - передача имени файла интерпретатору. Команда python script.py запускает скрипт, расположенный в текущей директории. Если файл находится в другом месте, указывается полный или относительный путь:
python /home/user/projects/hello.pyPython команды консоли (команды консоли python)
python ..\scripts\test.pyPython 3 консоль (консоль python 3)
Интерпретатор последовательно выполняет инструкции из файла. После завершения работы скрипта управление возвращается в командную строку операционной системы.
Цель использования - запуск заранее подготовленных программ, модулей, веб-приложений. Этот способ подходит для любого кода, который должен отработать один раз и завершиться.
Возможные проблемы:
- Ошибка 'python' не является внутренней или внешней командой - интерпретатор не добавлен в переменную PATH. Решение: переустановить Python с опцией «Add Python to PATH» или указать полный путь к исполняемому файлу (C:\Python39\python.exe script.py).
- Имя файла содержит пробелы - команда должна заключаться в кавычки: python "my script.py".
- Неверная версия Python - если установлено несколько версий, может потребоваться указывать конкретную, например python3 script.py или py -3 script.py (Windows).
Как войти в интерактивный режим интерпретатора?
Команда python без аргументов запускает интерактивную оболочку (REPL). В ней можно вводить выражения и сразу видеть результат, а также выполнять многострочные конструкции (циклы, функции).
python
После запуска появляется приглашение >>>. Для выхода используется команда exit() или сочетание Ctrl+Z (Windows) / Ctrl+D (Linux, macOS).
Цель - быстрое тестирование фрагментов кода, изучение библиотек, отладка. В этом режиме удобно проверять синтаксис и получать справку по объектам через help().
Проблема: случайный ввод бесконечного цикла (например, while True: pass) - интерпретатор зависает. Решение: прервать выполнение комбинацией Ctrl+C. После этого можно продолжить работу или выйти.
Как выполнить короткий код без создания файла?
Флаг -c позволяет передать код непосредственно в командной строке. Код заключается в кавычки, и интерпретатор исполняет его сразу.
python -c "print('Hello from command line')"
Если код содержит несколько строк, можно использовать символ переноса строки или группировку в тройные кавычки (в зависимости от ОС).
python -c "
import sys
for arg in sys.argv[1:]:
print(arg)
" -- one two three
Цель - быстрые вычисления, однострочные обработки данных, запуск простых тестов без создания файла. Особенно удобно для интеграции со скриптами оболочки.
Проблема: конфликт кавычек. В Windows двойные кавычки внутри кода должны быть экранированы. В Linux/макОС одинарные кавычки предотвращают интерпретацию переменных оболочки. Лучше использовать тройные кавычки или комбинировать типы кавычек.
Как запустить модуль как скрипт?
Многие модули Python имеют точку входа __main__. Их можно запустить через флаг -m с именем модуля (без расширения .py).
python -m http.server 8000
python -m venv myenv
python -m pip install requests
Цель - запуск встроенных и сторонних утилит, поставляемых как модули. Это гарантирует, что используется версия Python, соответствующая текущей среде.
Проблема: если модуль не установлен, возникает ошибка No module named X. Решение: установить модуль через pip install X или проверить активное виртуальное окружение.
Как остаться в интерпретаторе после выполнения скрипта?
Флаг -i после завершения скрипта оставляет активную интерактивную сессию. Все объекты, созданные во время выполнения, сохраняются.
python -i script.py
Это полезно для отладки: можно проверить значения переменных, вызвать функции, посмотреть стек вызовов (если скрипт прервался с ошибкой, интерпретатор переходит в режим отладки).
Проблема: если скрипт завершается с исключением без обработки, интерактивный режим всё равно запускается, но переменные могут быть неопределены. Чтобы войти в режим отладки после исключения, используют модуль pdb.
Как узнать установленную версию Python?
Флаг --version (или -V) выводит номер версии интерпретатора.
python --version
Вывод выглядит так: Python 3.11.4.
Цель - проверка совместимости перед запуском скрипта, выбор нужной версии при множественных установках.
Проблема: команда может показывать версию Python 2, если по умолчанию установлена устаревшая версия. На современных системах рекомендуется использовать python3 --version.
Расширенные примеры команд консоли Python
Ниже приведены дополнительные варианты использования интерпретатора с различными флагами и встроенными модулями. Каждый пример включает команду и ожидаемый результат.
1. Передача аргументов в код через -c и sys.argv
python -c "import sys; print(sys.argv[1:]); sys.exit(0)" arg1 arg2 arg3
['arg1', 'arg2', 'arg3']
Аргументы, следующие после кода, передаются как список sys.argv. Первый элемент (sys.argv[0]) равен '-c'.
2. Выполнение многострочного кода с помощью -c (оболочка Linux)
python -c $"
import os
for f in os.listdir('.'):
if f.endswith('.py'):
print(f)
"
script.py utils.py
Конструкция $"..." позволяет задавать многострочные строки в Bash. В Windows можно переносить строки с помощью символа ^.
3. Запуск отладчика pdb для скрипта
python -m pdb my_script.py
Интерпретатор останавливается перед выполнением первой строки. Затем можно вводить команды отладчика: n (следующий шаг), s (шаг внутрь функции), c (продолжить), q (выйти).
4. Запуск HTTP-сервера для раздачи файлов
python -m http.server 8080
Без аргументов сервер использует порт 8000. Команда открывает доступ к текущей директории через браузер по адресу http://localhost:8080.
5. Создание виртуального окружения и его активация
python -m venv myproject_env
# Windows: myproject_env\Scripts\activate
# Linux/macOS: source myproject_env/bin/activate
После активации все команды python и pip будут использовать изолированное окружение.
6. Установка пакета с указанием версии
python -m pip install requests==2.31.0
Вывод показывает ход загрузки и установки. При успешном завершении сообщение Successfully installed requests-2.31.0.
7. Оптимизация кода (флаги -O и -OO)
python -O script.py
python -OO script.py
Флаг -O удаляет операторы assert и снижает отладочный вывод. Флаг -OO дополнительно удаляет docstring. Результат - более быстрый запуск, но с потерей диагностики.
8. Подробная трассировка импортов (флаг -v)
python -v -c "import math"
Выводятся все файлы, которые загружает интерпретатор (файлы .py, .pyc, расширения). Полезно для отладки проблем с импортами.
9. Использование py (Windows) для выбора версии
py -3.9 script.py
py -2 script.py
Команда py автоматически доступна после установки Python на Windows. Флаг -3.9 запускает конкретную версию, если она установлена.
10. Отключение создания .pyc файлов (флаг -B)
python -B script.py
Интерпретатор не записывает байт-код в кэш (__pycache__). Полезно для портативных скриптов или при ограничениях на запись.
11. Вывод справки по всем опциям интерпретатора
python --help
Показывает список всех флагов и их описание. Выходные данные содержат также примеры использования.
12. Использование sys.path для временной смены путей
python -c "import sys; sys.path.insert(0, '/tmp/libs'); import custom_module"
Позволяет загружать модули из нестандартных директорий без установки.