OSError: libmediainfo.so.0: не удается открыть общий объектный файл: такого файла или каталога нет из aws lambda - PullRequest
0 голосов
/ 26 сентября 2018

Я использую pymediainfo в лямбда-функции, и я следовал за ответом от на этот вопрос .Функция имеет следующий код:

from pymediainfo import MediaInfo
s3_bucket_file_key = 'https://s3-region.amazonaws.com/sample-bucket/sample_video.mov'
media_info = MediaInfo.parse(s3_bucket_file_key)
media_info_json = media_info.to_json()

Может кто-нибудь помочь мне, примерная корзина общедоступна, и я могу запустить этот код в своей системе.но получая приведенную ниже ошибку из Cloudwatch в aws-lambda.

Кажется, что libmediainfo - это пакет, связанный с ОС, я не уверен, как экспортировать его в пакет развертывания python.

anupam:Videos$ apt-cache search libmediainfo
libmediainfo-dev - library reading metadata from media files -- headers
libmediainfo-doc - library for reading metadata from media files -- documentation
libmediainfo0v5 - library for reading metadata from media files -- shared library

ошибка

libmediainfo.so.0: cannot open shared object file: No such file or directory: OSError
Traceback (most recent call last):
File "/var/task/lambda_function.py", line 166, in lambda_handler
media_info = MediaInfo.parse(key)
File "/var/task/pymediainfo/__init__.py", line 183, in parse
lib = cls._get_library(library_file)
File "/var/task/pymediainfo/__init__.py", line 155, in _get_library
return CDLL("libmediainfo.so.0")
File "/usr/lib64/python2.7/ctypes/__init__.py", line 357, in __init__
self._handle = _dlopen(self._name, mode)
OSError: libmediainfo.so.0: cannot open shared object file: No such file or directory

Когда я вручную добавил libmediainfo.so.0 к команде

media_info = MediaInfo(video_file, library_file='path/to/libmediainfo')

Теперь я получаю приведенную ниже ошибку для libzen.so.0

libzen.so.0: cannot open shared object file: No such file or directory: OSError
Traceback (most recent call last):
File "/var/task/erlabs.py", line 166, in lambda_handler
media_info = MediaInfo.parse(key,library_file='libmediainfo.so.0')
File "/var/task/pymediainfo/__init__.py", line 183, in parse
lib = cls._get_library(library_file)
File "/var/task/pymediainfo/__init__.py", line 146, in _get_library
return CDLL(library_file)
File "/usr/lib64/python2.7/ctypes/__init__.py", line 357, in __init__
self._handle = _dlopen(self._name, mode)
OSError: libzen.so.0: cannot open shared object file: No such file or directory
...