Проблема совместимости AWS Boto3, Как установить более старую версию Boto3?

Я пытаюсь развернуть свой проект Django на AWS Elastic Beanstalk.
Учебник, которому я следую, предлагает использовать Boto3 для подключения моей базы данных S3.

Проблема в том, что когда я устанавливаю Boto3, я получаю это сообщение красного цвета.

awsebcli 3.20.3 requires botocore<1.24.0,>1.23.41, but you have botocore 1.27.7 which is incompatible.

Итак, я пытаюсь установить более старую версию Botocore, 1.24.0 или 1.23.41, но после просмотра PyPi я не могу найти его, так как он просто говорит использовать pip3 install boto3.

Есть предложения?

Попробуйте следующее:
pip install boto3==1.21.21
pip install botocore==1.24.21

Лучший способ исправить это - использовать python virtual environments.

AWS EB CLI привязан к очень специфической версии botocore, и они не обновляют ее очень часто. В результате, вы не хотите, чтобы он присутствовал в списке зависимостей вашего проекта, поскольку это затруднит установку других библиотек (например, современных версий boto3).

Общая установка, которую вы можете использовать, выглядит следующим образом:

  1. Установите awsebcli глобально (он нужен только для скриптов)
  2. .
  3. Сделайте виртуальную среду для вашего проекта
  4. Установите все зависимости вашего проекта в виртуальную среду; не не устанавливайте awsebcli в виртуальную среду

Если это не работает (например, у вас есть другие вещи, которые вам нужно установить глобально с конфликтующими подзависимостями), вы должны установить awsebcli в его собственный виртуальный env и иметь псевдонимы для его активации, но это становится очень запутанным.

У меня была такая же проблема: Если вы уже установили boto3, то сделайте следующее:

  1. pip uninstall boto3
  2. pip uninstall botocore
  3. pip uninstall s3transfer

тогда сделайте следующее:

  1. pip install botocore==1.23.54
  2. pip install boto3==1.20.54

Надеюсь, это поможет!

Вернуться на верх