хранилище импорта google.cloud: невозможно импортировать хранилище

Я попытался запустить приведенный ниже код, следуя инструкциям по Google, которые я нашел здесь: https://cloud.google.com/docs/authentication/production

def implicit():
    from google.cloud import storage

    # If you don't specify credentials when constructing the client, the
    # client library will look for credentials in the environment.
    project = 'my_project_name'
    storage_client = storage.Client(project=project)

    # Make an authenticated API request
    buckets = list(storage_client.list_buckets())
    print(buckets)

implicit()

Но он продолжает выдавать мне следующую ошибку:

Traceback (most recent call last):
  File "[PATH]/scratch_5.py", line 13, in <module>
    implicit()
  File "[PATH]/scratch_5.py", line 2, in implicit
    from google.cloud import storage
ImportError: cannot import name storage

Может ли кто-нибудь помочь мне с этим?

Ответ 1

Я вижу, вы пытаетесь использовать клиентские библиотеки Google Cloud Storage.

Чтобы использовать его, сначала убедитесь, что он установлен на вашем компьютере:

pip install --upgrade google-cloud-storage

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

export GOOGLE_APPLICATION_CREDENTIALS="/path/to/file.json"

В качестве альтернативы вы можете попробовать , используя явные учетные данные. Единственное отличие между тем, которым вы поделились (используя неявные учетные данные, полученные из среды), и тем, которое использует явные учетные данные, состоит в том, что при объявлении клиента GCS вы должны сделать что-то вроде:

storage_client = storage.Client.from_service_account_json('/path/to/SA_key.json')

Как только все это будет готово, у вас не должно возникнуть проблем с запуском предоставленного вами примера кода. Чтобы продолжить изучение GCS и его клиентских библиотек, не стесняйтесь искать в документации, на которую я ссылался, и просматривать справочную страницу библиотеки.

Ответ 2

Также убедитесь, что ваш файл main.py и requirements.txt находятся в одном и том же каталоге и в том же каталоге, что и развертываемая функция.

Просто к вашему сведению, потому что я должен был сделать это даже после указания переменных среды.