Ошибка OSE: [Errno 2] Нет такого файла или каталога: [скрипт Python] внутри php shell_exec [AWS-Lambda]

Я запускаю PHP в лямбда-функции, используя обертку node.js.
Это код Python, который я запускаю внутри своего PHP-кода, используя shell_exec.

shell_exec($bin_path .' '. __DIR__ . "/ffprobe_hosts.py " . $video_url);

Внутри ffprobe_hosts.py

 scene_ps = subprocess.Popen(("/usr/bin/ffprobe",
"-show_frames",
"-of",
"compact=p=0",
"-f",
"lavfi",
"movie=" + src_video + ",select=gt(scene\," +
str(threshold) + ")"),
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT)

И это ошибка, которую я получаю

2018-05-04T10:26:54.021Z    a8bfb250-4f85-11e8-bea2-f1c1fe029cf0
STDERR:     boundaries = extract_shots_with_ffprobe(sys.argv[1])
File "/var/task/3rdparty/ffprobe/ffprobe_hosts.py", line 30, in
extract_shots_with_ffprobe
stderr=subprocess.STDOUT)
File "/usr/lib64/python2.7/subprocess.py", line 711, in __init__
errread, errwrite)
File "/usr/lib64/python2.7/subprocess.py", line 1343, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory

В ошибке упоминается «Нет такого файла или каталога, я не уверен, какой каталог там упоминается.

0

Решение

Трассировка стека говорит вам, что ваш скрипт Python завершается с ошибкой в ​​строке 30, где вы вызываете функцию extract_shots_with_ffprobe(sys.argv[1]), sys.argv[1] это первый аргумент командной строки для вашего скрипта Python, т.е. $video_url, Таким образом, значение этой переменной не является путем, который указывает на существующий файл в файловой системе.

0

Другие решения

изменения /usr/bin/ffprobe в /var/task/ffprobe который является двоичным путем ffprobe, исправил ошибку.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector