Subprocess.call() не выбрасывает ошибку, когда файл не найден

Я пытаюсь запустить скрипт на python из веб-сервиса Django и использую метод subprocess.call() и поместил его в блок try except, потому что мне нужно получить ошибку, когда что-то не так. Я обнаружил, что когда путь к скрипту недействителен, ошибка не возникает, а только выводится на консоль, но мне нужно, чтобы она возникала, чтобы я мог поймать ее в блоке except.

Вот мой код.

try:
    row = exec_SQL(f"SELECT [ID], [ProjectPath], [MainFileName] FROM [dbo].[WebserviceInfo] WHERE ProjectName='{project}'")
        command = f'python {row[1]}\{row[2]} {model} {scenario}'
        subprocess.call(command, shell=True)
except Exception as e:
    error_message = str(e)

Это путь к файлу + некоторые аргументы, которые мне нужны.

f'python {row[1]}\{row[2]} {model} {scenario}

Заранее спасибо за помощь.

Вы можете проверить, существует ли файл, прежде чем пытаться выполнить скрипт. Если такой файл не существует, вы можете сами поднять исключение.

Что-то вроде:

import os.path

if not os.path.isfile('script.py'):
    raise Exception('File not found')
Вернуться на верх