Пакет Pysftp не работает при ошибке выброса лямбда-функции: невозможно импортировать имя «_bcrypt» из «bcrypt» (./lib/bcrypt/__init__.py) - PullRequest
0 голосов
/ 06 марта 2019

Я скачиваю (pip install pysftp), делаю zip-файл и загружаю в лямбда-функцию.но это не работает в лямбда-функции.Бросая ошибка.

Ответ:

{
  "errorMessage": "Unable to import module 'lambda_function': cannot import name '_bcrypt' from 'bcrypt' (./lib/bcrypt/__init__.py)",
  "errorType": "Runtime.ImportModuleError"
}

Большое спасибо заранее.

Ответы [ 2 ]

0 голосов
/ 17 марта 2019

Поскольку вам необходимо устранять зависимости модулей, необходимо проверить среду выполнения Python в AWS Lambda.

В вашей AWS Lambda распечатайте загруженные модули и, следовательно, доступные для других модулей, которые ваш кодimport.

def lambda_handler(event, context):
    print (help("modules"))

Запуск этого в интерпретаторе python подсвечивает.

python
help("modules")

Вы увидите Please wait a moment while I gather a list of all available modules... и большой список доступных для импорта модулей.

Вы обнаружите, что вам не хватает bcrypt, поскольку в этом модуле, как учит help(bcrypt), вы найдете отсутствующую зависимость _bcrypt.

Если bcrypt будет доступен для лямбды или простоинтерпретатор Python, это найдено таким образом.

>>> bcrypt._bcrypt
<module 'bcrypt._bcrypt' from '/usr/local/lib/python2.7/site-packages/bcrypt/_bcrypt.so'>
0 голосов
/ 13 марта 2019

Попробуйте переустановить пакеты и загрузить новые пакеты.Если это все еще показывает ошибку, переместите свою среду разработки с Windows на Linux.Подобный тип ошибки для вашей справки: [1]: https://forums.aws.amazon.com/thread.jspa?messageID=804753&tstart=0

...