Выполнение Python: от простых команд до сложных сценариев
Основные способы запуска Python
Как запустить скрипт Python из командной строки?
Самый распространенный способ — вызов интерпретатора с именем файла. Для этого требуется открыть терминал (командную строку) и перейти в каталог с файлом script.py. Затем ввести команду:
python script.pyPython запуск (запуск python)
Если установлены несколько версий Python, может потребоваться указать python3 или py (Windows).
python3 script.pyПосле нажатия Enter интерпретатор читает файл, выполняет инструкции и выводит результат.
# script.py
print('Привет, мир!')Результат в терминале:
Привет, мир!
Типичные ошибки:
- Python не распознан как команда — необходимо добавить путь к интерпретатору в переменную среды PATH или переустановить Python с опцией «Add Python to PATH».
- Файл не найден — проверьте текущий каталог (команда
pwdилиcd) и имя файла. - Синтаксическая ошибка — интерпретатор укажет строку с ошибкой, исправьте код в файле.
Как выполнить код без создания файла?
Для быстрых экспериментов используется интерактивный режим. В терминале введите:
pythonПоявится приглашение >>>. После ввода строки кода и нажатия Enter интерпретатор сразу вычисляет её:
>>> 2 + 2
4Выход из режима — exit() или Ctrl+Z (Windows) / Ctrl+D (Linux, macOS).
Возможная сложность:
Многострочные конструкции (циклы, функции) требуют соблюдения отступов и завершения пустой строкой.
Как выполнить одну строку кода?
Флаг -c позволяет передать код прямо в команду:
python -c "print('Hello')"Результат:
Hello
Удобно для однострочных операций, не требующих файла.
Ошибка экранирования кавычек:
В Windows при использовании двойных кавычек внутри строки нужно экранировать или использовать одинарные кавычки.
Как запустить модуль как главный скрипт?
Если модуль поддерживает запуск через if __name__ == '__main__', его можно выполнить командой -m:
python -m http.serverЗапустит простой HTTP-сервер. Аналогично для своих модулей:
python -m mymoduleЭтот способ гарантирует правильную настройку путей импорта.
Ошибка: модуль не найден
Убедитесь, что модуль находится в текущем каталоге или установлен в системе.
Как сделать скрипт исполняемым в Linux/macOS?
Добавьте шебанг (shebang) в первую строку файла:
#!/usr/bin/env python3Затем установите права на выполнение:
chmod +x script.pyТеперь скрипт запускается как ./script.py.
Проблема с путём к интерпретатору
Если Python установлен нестандартно, укажите явный путь вместо env.
Как запустить код в среде разработки (IDE)?
В PyCharm, VS Code, IDLE обычно есть кнопка «Run» (зелёный треугольник) или горячие клавиши (F5, Ctrl+F5). При этом IDE сама вызывает интерпретатор и выводит результат в окно консоли. Этот способ удобен для отладки и больших проектов.
Ошибки конфигурации:
Убедитесь, что выбран правильный интерпретатор (виртуальное окружение) и активный файл содержит исполняемый код.
Как обеспечить корректный запуск скрипта и при импорте?
Используйте конструкцию if __name__ == '__main__':. Код внутри неё выполняется только при прямом запуске:
# test.py
def main():
print('Запущен как скрипт')
if __name__ == '__main__':
main()При импорте import test сообщение не выводится.
Частая ошибка:
Пропуск отступа или опечатка в __name__ (два подчёркивания с обеих сторон).
Расширенные примеры запуска Python
Как запустить скрипт с явным указанием версии?
# Использование python2 и python3
python2 script.py
python3 script.pyВ системах с обеими версиями можно проверить версию через --version:
python --version
python3 --versionPython 2.7.18 Python 3.9.10
Конфликт имён
В некоторых системах python указывает на Python 2, тогда python3 — единственный способ.
Какие флаги интерпретатора могут упростить работу?
# Оптимизация (-O) удаляет assert'ы
python -O script.py
# Не создавать .pyc файлы (-B)
python -B script.py
# Не буферизовать вывод (-u)
python -u script.pyФлаг -i после выполнения скрипта переходит в интерактивный режим:
python -i script.pyЭто позволяет проанализировать переменные после завершения.
Как передать аргументы в скрипт?
Аргументы командной строки доступны в sys.argv:
# args.py
import sys
print('Аргументы:', sys.argv)python args.py apple bananaАргументы: ['args.py', 'apple', 'banana']
Первый элемент — имя скрипта.
Проблема с пробелами в аргументах
Аргумент с пробелом нужно заключать в кавычки: python args.py "привет мир".
Как запустить Python-скрипт из другого скрипта?
Модуль subprocess позволяет выполнить внешнюю команду:
# runner.py
import subprocess
result = subprocess.run(['python', 'script.py'], capture_output=True, text=True)
print('stdout:', result.stdout)
print('stderr:', result.stderr)stdout: Привет, мир! stderr:
Для более простых случаев используется os.system:
import os
os.system('python script.py')Однако subprocess даёт больше контроля.
Ошибки при неверном пути
Убедитесь, что файл script.py существует в рабочем каталоге запускающего скрипта.
Как запустить скрипт в фоне (Linux/macOS)?
nohup python long_script.py &Команда nohup игнорирует сигнал SIGHUP, а символ & отправляет процесс в фон. Вывод перенаправляется в nohup.out.
Для перенаправления в конкретный файл:
python long_script.py > output.log 2>&1 &Управление фоновыми процессами
После запуска можно использовать jobs и kill %1.
Как запустить Python с виртуальным окружением?
Активируйте окружение и используйте его интерпретатор:
source venv/bin/activate # Linux/macOS
venv\Scripts\activate # Windows
python script.pyПосле активации команда python указывает на интерпретатор из окружения.
Без активации можно явно указать путь:
./venv/bin/python script.py
venv\Scripts\python.exe script.pyОшибки импорта
Если модули установлены только в окружении, запуск без активации приведёт к ModuleNotFoundError.