Запуск Boto3 на Ubuntu 18.04 - PullRequest
       3

Запуск Boto3 на Ubuntu 18.04

0 голосов
/ 12 апреля 2020

Я не могу запустить boto3 в Ubuntu 18.04 (AWS), изначально я думал, что код не работает, но это может быть сама установка?

ubuntu@ip-172-30-10-199:~$ sudo -H pip3 install boto3
Requirement already satisfied: boto3 in /usr/lib/python3/dist-packages
ubuntu@ip-172-30-10-199:~$ sudo -H pip3 install botocore
Requirement already satisfied: botocore in /usr/lib/python3/dist-packages
ubuntu@ip-172-30-10-199:~$ python3 --version
**Python 3.6.9**
ubuntu@ip-172-30-10-199:~$ sudo apt-get install python3-boto3
Reading package lists... Done
Building dependency tree       
Reading state information... Done
python3-boto3 is already the newest version (1.4.2-1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
ubuntu@ip-172-30-10-199:~$ 

s3_list.py file:

import boto3
s3 = boto3.resource('s3')

for bucket in s3.buckets.all():
       print(bucket.name)

Запуск кода.

ubuntu@ip-172-30-10-199:~$ python3 s3_list.py 
Traceback (most recent call last):
  File "s3_list.py", line 4, in <module>
    s3 = boto3.resource('s3')
  File "/home/ubuntu/boto3/__init__.py", line 100, in resource
    return _get_default_session().resource(*args, **kwargs)
  File "/home/ubuntu/boto3/session.py", line 389, in resource
    aws_session_token=aws_session_token, config=config)
  File "/home/ubuntu/boto3/session.py", line 263, in client
    aws_session_token=aws_session_token, config=config)
  File "/home/ubuntu/botocore/session.py", line 835, in create_client
    client_config=config, api_version=api_version)
  File "/home/ubuntu/botocore/client.py", line 79, in create_client
    cls = self._create_client_class(service_name, service_model)
  File "/home/ubuntu/botocore/client.py", line 109, in _create_client_class
    base_classes=bases)
  File "/home/ubuntu/botocore/hooks.py", line 356, in emit
    return self._emitter.emit(aliased_event_name, **kwargs)
  File "/home/ubuntu/botocore/hooks.py", line 228, in emit
    return self._emit(event_name, kwargs)
  File "/home/ubuntu/botocore/hooks.py", line 211, in _emit
    response = handler(**kwargs)
  File "/home/ubuntu/boto3/utils.py", line 61, in _handler
    module = import_module(module)
  File "/home/ubuntu/boto3/utils.py", line 52, in import_module
    __import__(name)
  File "/home/ubuntu/boto3/s3/inject.py", line 15, in <module>
    from boto3.s3.transfer import create_transfer_manager
  File "/home/ubuntu/boto3/s3/transfer.py", line 127, in <module>
    from s3transfer.exceptions import RetriesExceededError as \
  File "/home/ubuntu/s3transfer/__init__.py", line 134, in <module>
    import concurrent.futures
  File "/home/ubuntu/concurrent/futures/__init__.py", line 8, in <module>
    from concurrent.futures._base import (FIRST_COMPLETED,
  File "/home/ubuntu/concurrent/futures/_base.py", line 414
    raise exception_type, self._exception, self._traceback
                        ^
SyntaxError: invalid syntax
ubuntu@ip-172-30-10-199:~$ 

У меня есть файл ~ / .aws / credentials, содержащий соответствующие ключи. Я использую эти же клавиши для доступа к корзине с моего ноутбука (S3 Browser).

1 Ответ

0 голосов
/ 13 апреля 2020

Мне удается найти ответ.

Каким-то образом это было связано с разрешениями S3, вместо того, чтобы использовать ключ / секрет, мне удалось присвоить роль S3 Fullcontrol моему EC2, и это работало как чудо.

Mea culpa, я думаю, что сообщение об ошибке также может быть более информативным. Пожалуйста, учитесь на моей ошибке: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...