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

Я запускаю 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

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

Ответы [ 2 ]

0 голосов
/ 05 мая 2018

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

0 голосов
/ 04 мая 2018

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...