web-dev-qa-db-fra.com

Comment exécuter Google gsutil en utilisant Python

Après avoir installé et configuré Google Cloud SDK, la commande gsutil peut être exécutée en tapant simplement son nom et l'argument (-s) à l'aide de Windows cmd.

Voici l'exemple:

"C:\Program Files (x86)\Google\Cloud SDK\google-cloud-sdk\bin\gcloud" version

enter image description here

Mais la même commande échoue si elle est exécutée à l'aide du sous-processus Python. Avec l'argument Shell du sous-processus défini sur True, ImportError se produit:

import subprocess

cmd = '"C:/Program Files (x86)/Google/Cloud SDK/google-cloud-sdk/bin/gsutil" version'

p = subprocess.Popen(cmd, Shell=True)

.....

ImportError: No module named site

Avec l'argument Shell du sous-processus défini sur False, le WindowsError: [Error 2] The system cannot find the file specified se produit:

p = subprocess.Popen(cmd, Shell=False)

Existe-t-il un moyen d'exécuter gsutil sous Windows en utilisant Python?

6
alphanumeric

Notez que la manière appropriée et officielle d'interagir avec Google Cloud Storage consiste à utiliser la bibliothèque cliente Google Cloud pour Python et à ne pas exécuter la commande gsutil via subprocess.Popen. Si vous ne configurez pas simplement quelques tests, je vous suggère de suivre cette procédure dès le début s'il n'y a pas de contrainte technologique qui rende cette méthode impossible.

Vous pouvez vérifier aux liens suivants les relatifs Présentation et Documentation . Un petit exemple tiré de la documentation peut être le suivant:

from google.cloud import storage

client = storage.Client()
bucket = client.get_bucket('<your-bucket-name>')
blob = bucket.blob('my-test-file.txt')
blob.upload_from_string('this is test content!')

Vous pouvez trouver un autre exemple ici en utilisant google-cloud-python avec le Datastore et le Cloud Storage pour gérer les dépenses.

10
GalloCedrone