web-dev-qa-db-fra.com

google.cloud import storage: impossible d'importer le stockage

J'ai essayé d'exécuter le code ci-dessous en suivant les didacticiels Google que j'ai trouvés ici: 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()

Mais cela continue de me donner l'erreur suivante:

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

Quelqu'un pourrait-il m'aider avec ça?

11
Mariane Reis

Je vois que vous essayez d'utiliser les bibliothèques clientes Google Cloud Storage .

Pour l'utiliser, vous devez d'abord vous assurer qu'il est installé sur votre machine:

pip install --upgrade google-cloud-storage

Et puis, vous devriez probablement configurer l'authentification (si vous utilisez Application Default Credentials , à partir de la documentation que vous avez mentionnée), en configurant le GOOGLE_APPLICATION_CREDENTIALS variable d'environnement sur la machine sur laquelle vous exécutez le code, comme ci-dessous. Si vous utilisez Windows, suivez plutôt les étapes présentées dans la documentation .

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

Alternativement, vous pouvez essayer en utilisant des informations d'identification explicites . La seule différence entre celle que vous avez partagée (en utilisant des informations d'identification implicites obtenues à partir de l'environnement) et celle en utilisant des informations d'identification explicites, c'est que lorsque vous déclarez le client GCS, vous devez faire quelque chose comme:

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

Une fois que tout cela est prêt, vous ne devriez avoir aucun problème lors de l'exécution de l'exemple de code que vous avez fourni. Afin de continuer à en apprendre davantage sur GCS et ses bibliothèques clientes, n'hésitez pas à rechercher dans la documentation que j'ai liée et à consulter la page de référence de la bibliothèque .

22
dsesto

Assurez-vous également que votre main.py fichier et le requirements.txt sont dans le même répertoire et le même répertoire que la fonction en cours de déploiement.

Juste pour info, car je devais le faire même après avoir spécifié mes variables d'environnement.

0
Togobingi