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
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?
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.