Я работаю с функцией AWS Lambda и имею несколько зависимостей.
В качестве примера для упрощения я буду использовать запросы (и да, я знаю, что запросы доступны из Botocore, но у меня есть другие зависимости, которых нет). моя структура проекта выглядит следующим образом:
lambda_function/
lambda_function.py
misc/
__init__.py
example.py
packages/
requests/
urllib3/
...
Каталог packages / был получен путем выполнения pip install requests --target ./packages
в lambda_function.py, у нас есть
from misc.example import foo
В примере .py у нас есть
from packages import requests
def foo():
return requests.get('example.com')
, что дает ModuleNotFoundError: нет модуля с именем 'urllib3', хотя urllib3 определенно находится внутри пакетов / Я знаю, что этого можно избежать, просто поместив все в один каталог верхнего уровня, но есть довольно много зависимостей, и я хочу, чтобы все было в чистоте. Есть ли способ заставить запросы импортировать из каталога packages / вместо этого или как-то добавить пакеты / в путь? Я уже пробовал делать
sys.path.append(os.path.abspath('lambda_function/packages'))
, но безуспешно.