Как запустить скрипт на Python: инструкции и примеры

Раздел: Разработка на Python -> Управление скриптами

Основные способы выполнения скрипта Python

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

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

Самый прямой путь - использовать интерпретатор Python с именем файла. Допустим, имеется скрипт main.py:

print('Привет, мир!')

Python скрипт (создание и запуск скриптов на python)

Команда для запуска:

python main.py

Execute script python (выполнение скрипта python)

В результате в консоль выводится сообщение. Этот метод подходит для однократного запуска и отладки.

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

Как запустить один скрипт из другого с помощью subprocess?

Модуль subprocess предоставляет современные средства для запуска внешних процессов. Пример:

import subprocess
subprocess.run(['python', 'worker.py'])

Метод run блокирует выполнение до завершения дочернего процесса. Для получения вывода используйте параметр capture_output=True и text=True.

Частая ошибка: указание неверного пути к скрипту или интерпретатору. Проверяйте наличие файла и правильность команды. Также возможны проблемы с кодировкой вывода в Windows.

Как выполнить команду оболочки для запуска скрипта?

Функция os.system из стандартной библиотеки передаёт команду оболочке ОС. Пример:

import os
os.system('python script.py')

Преимущество - простота. Недостаток - не возвращается вывод скрипта, только код завершения. Рекомендуется использовать subprocess для более гибкого контроля.

Проблема безопасности: если команда формируется из пользовательского ввода, возможна инъекция команд. Лучше избегать os.system с недоверенными данными.

Как выполнить код скрипта из строки с помощью exec?

Встроенная функция exec выполняет произвольный код Python. Пример чтения файла и выполнения:

with open('script.py', 'r') as f:
    code = f.read()
exec(code)

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

Риск: exec может выполнить вредоносный код. Применяйте только для доверенных скриптов. Также переменные, определённые в exec, могут конфликтовать с текущим пространством имён.

Как использовать скрипт как модуль через import?

Если скрипт script.py не содержит посторонних действий на верхнем уровне, его можно импортировать:

import script

При импорте выполняется весь код верхнего уровня. Поэтому скрипт должен быть оформлен с защитой if __name__ == '__main__':. Тогда импорт не вызовет нежелательных эффектов.

Типичная ошибка: импортированный скрипт запускает основную логику, так как забыто условие if __name__ == '__main__'. Добавьте эту конструкцию для отделения выполняемого кода от библиотечного.

Как выполнить скрипт в фоновом режиме без привязки к терминалу?

В Linux можно запустить скрипт с помощью nohup и амперсанда:

nohup python daemon.py &

В Windows используется команда start /B python daemon.py или планировщик задач. Для автоматического повторения применяют cron (Linux) или Task Scheduler (Windows).

Проблема: при фоновом запуске вывод может теряться. Перенаправляйте вывод в файл: nohup python daemon.py > output.log 2>&1 &. Также необходимо корректно завершать процесс при необходимости.

Как выполнить скрипт с повышенными привилегиями?

В Linux используйте команду sudo:

sudo python privileged_script.py

В Windows щёлкните правой кнопкой по командной строке и выберите 'Запуск от имени администратора', затем выполните скрипт. Альтернативно можно использовать runas.

Осторожно: выполнение скрипта с root-правами может привести к необратимым изменениям системы. Всегда проверяйте код перед запуском с повышенными привилегиями.

Как запустить скрипт непосредственно из среды разработки?

Почти все IDE (PyCharm, VS Code, IDLE) имеют кнопку запуска или сочетание клавиш. Например, в PyCharm достаточно открыть файл и нажать Ctrl+Shift+F10. Среда сама подбирает интерпретатор и передаёт аргументы, если они настроены.

Проблема: несовпадение интерпретатора или виртуального окружения. В настройках IDE укажите корректный Python interpreter.

Расширенные примеры выполнения скриптов

Пример 1: Запуск с таймаутом и обработка ошибок.

Пример
import subprocess
try:
    result = subprocess.run(
        ['python', 'calc.py'],
        capture_output=True,
        text=True,
        timeout=5
    )
    print('Выходной код:', result.returncode)
    print('stdout:', result.stdout)
    print('stderr:', result.stderr)
except subprocess.TimeoutExpired:
    print('Скрипт превысил лимит времени')
except FileNotFoundError:
    print('Скрипт не найден')

Результат (если calc.py выводит 'Результат: 42'):

Выходной код: 0
stdout: Результат: 42
stderr: 

Пример 2: Асинхронный запуск с Popen.

Пример
import subprocess
proc = subprocess.Popen(
    ['python', 'long_task.py'],
    stdout=subprocess.PIPE,
    stderr=subprocess.PIPE
)
stdout, stderr = proc.communicate(timeout=10)
print('Вывод:', stdout.decode())
print('Ошибки:', stderr.decode())

Результат после завершения long_task.py.

Вывод: Выполнение завершено успешно
Ошибки: 

Пример 3: Параллельный запуск нескольких скриптов.

Пример
import multiprocessing
import subprocess

def run_script(name):
    subprocess.run(['python', name])

scripts = ['script1.py', 'script2.py', 'script3.py']
with multiprocessing.Pool(3) as pool:
    pool.map(run_script, scripts)

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

(вывод каждого скрипта в произвольном порядке)

Пример 4: Периодическое выполнение с schedule.

Пример
import schedule
import time
import subprocess

def job():
    subprocess.run(['python', 'report.py'])

schedule.every().day.at('08:00').do(job)
while True:
    schedule.run_pending()
    time.sleep(60)

Результат: скрипт report.py запускается каждый день в 8:00.

Скрипт выполняется в запланированное время

Пример 5: Использование интерпретатора из виртуального окружения.

Пример
import subprocess
venv_python = '/home/user/venv/bin/python'
subprocess.run([venv_python, 'script.py'])

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

(вывод скрипта)

Пример 6: Упаковка скрипта в исполняемый файл и его запуск.

Пример
# Упаковка (выполняется в командной строке):
# pyinstaller --onefile script.py
# Запуск упакованного файла:
import subprocess
subprocess.run(['./dist/script'])  # на Linux

Результат: запускается отдельное приложение без установленного Python.

(вывод приложения)

Выполнение скрипта Python - comments

En
Execute script python (python)