Ошибка атрибута: модуль ‘botocore’ не имеет атрибута ‘session’ при следовании за быстрым запуском boto3

#python #boto3 #aws-cli #botocore

#python #boto3 #aws-cli #botocore

Вопрос:

Я следовал инструкциям быстрого запуска boto3 и могу работать import boto3 , но когда я пытаюсь выполнить любую базовую команду, например db = boto3.resource('dynamodb') , я получаю

 Traceback (most recent call last):

  File "<ipython-input-144-424c27c1bae1>", line 1, in <module>
    botocore.session.get_session()

AttributeError: module 'botocore' has no attribute 'session'
 

Учетные данные и файлы конфигурации выглядят хорошо, и я попытался переустановить awscli и boto3, но это не помогает. Я не понимаю, в чем проблема.

Комментарии:

1. оба awscli и boto3 установлены с помощью pip install

2. Можете ли вы предоставить полный пример кода? Также вы запускаете это в каком-нибудь дистрибутиве Linux?

Ответ №1:

 from botocore.session import Session

session = Session()
 

используйте приведенный выше код вместо использования

 session = botocore.session.get_session()
 

документация botocore 1.19.57 https://botocore.amazonaws.com/v1/documentation/api/latest/index.html#how-do-i-update-my-code

Ответ №2:

Не уверен, почему это не работает.

 import boto3

boto3.resource('dynamodb')
 

Но это работает.

 from botocore.session import Session

session = Session()
session.create_client("ec2", aws_access_key_id=<access_key_id>, aws_secret_access_key=<secret_access_key>)