Я пытаюсь сделать функцию AWS Lambda на основе Python, и мне нужно импортировать модуль. Я следовал инструкциям в разделе Создание пакета развертывания (Python) на Amazon.

Когда я создаю и загружаю ZIP-файл, ZIP включает в себя:

Основное содержимое ZIP, tester2 - моя основная программа на Python

В папке usaddress я поместил зависимости usaddress, хотя я только догадываюсь, что они там и находятся.

В любом случае, когда я загружаю файл в Lambda, возвращается ошибка:

{ 
"errorMessage": "Unable to import module 'Tester2'"
}
START RequestId: e9c2cafe-3705-11e6-a289-5366a5578765 Version: $LATEST
Unable to import module 'Tester2': No module named future.builtins
END RequestId: e9c2cafe-3705-11e6-a289-5366a5578765

Файл usaddress/pycrfsuite/_pycrfsuite.pyd импортируется usaddress/pycrfsuite __init_ . _Pycrfsuite находится в правильном каталоге, но я не знаю, почему он игнорируется.

Как мне заставить это работать?

1 ответ1

0

После долгих исследований я понял, что файлы .pyd (тип файлов, который игнорировался) - это скомпилированные файлы cython, и что они компилируются по-разному в системах DOS и UNIX. Поэтому я открыл экземпляр EC2, установил usaddress, библиотеку зависимостей и скопировал поверх .so-файла, скомпилированный экземпляр ec2.

Это сработало, поэтому это была проблема несовместимых системных файлов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .