Ошибка импорта PIL / подушки AWS Lambda Python - PullRequest
0 голосов
/ 29 июня 2018

Я пытаюсь развернуть простую службу в AWS Lambda (на Python 3.6), которая требует PIL. Я использую безсерверный фреймворк, поэтому для начала я просто сделал pip3 freeze > requirements.txt на экземпляре ec2 с моим кодом и всеми установленными зависимостями, а когда я вызвал функцию Lambda, я получил следующую ошибку (из журналов CloudWatch):

Unable to import module 'lambda_function': No module named 'PIL'

Затем я попытался установить и упаковать подушку вручную, выполнив pip3 install pillow -t .vendor и добавил следующее в мой serverless.yml:

package: include: - .vendor/**

Но я все еще получаю ту же ошибку. Я что-то не так делаю?

РЕДАКТИРОВАТЬ: Кажется, что не используя безсерверную архитектуру и вместо упаковки пакетов зависимостей, я сам решил проблему. Почему это?

1 Ответ

0 голосов
/ 04 июля 2018

Это связано с тем, что pillow не является стандартной библиотекой python, используемой по умолчанию в среде AWS Lambda. Чтобы включить и использовать его в своем коде, необходимо создать специальный пакет развертывания со всеми вашими зависимостями и включенным кодом, а затем развернуть его.

И это то, что вы сделали, чтобы запустить его.

...