Мы разрабатываем функцию AWS Lambda для навыка Alexa в Python и используем pip
для установки пакета ask-sdk
в наш каталог dist/
:
pip install -t dist/ ask-sdk
Проблема с -t dist/
, потому что pip
хочет иметь там все зависимости, даже если они установлены для всей системы.
Теперь у ask-sdk
есть зависимость от boto3
, которая включает множество других пакетов. Однако среда выполнения AWS Lambda обеспечивает boto3
, и нет необходимости упаковывать это и его зависимости с нашим кодом. У меня действительно установлен boto3
в системе и import boto3
работает, поэтому я подумал, что pip
должен быть счастлив, но из-за -t dist/
он всегда устанавливает его.
Можно ли как-нибудь установить только ask-sdk
и его зависимости, которых нет в системе, например ask-sdk-core
, а не те, которые уже установлены?
Один из способов - перечислить все модули и использовать pip --no-deps
, но это означает, что нужно постоянно отслеживать зависимости вручную, мы бы хотели этого избежать.
Каким-то образом я хотел бы сказать pip
: если пакет уже установлен, даже если его нет в -t dist/
, не помещайте копию в dist/
.
Это возможно?
Спасибо!