Google Cloud SDKをインストールして構成した後、Windowsコマンドを使用して名前と引数(-s)を入力するだけで、gsutil
コマンドを実行できます。
次に例を示します。
"C:\Program Files (x86)\Google\Cloud SDK\google-cloud-sdk\bin\gcloud" version
ただし、Pythonサブプロセスを使用して実行すると、同じコマンドが失敗します。サブプロセスのShell
引数をTrueに設定すると、ImportError
が発生します。
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
サブプロセスのShell
引数をFalseに設定すると、WindowsError: [Error 2] The system cannot find the file specified
が発生する:
p = subprocess.Popen(cmd, Shell=False)
Pythonを使用してWindowsでgsutil
を実行する方法はありますか?
Google Cloud Storageを操作する適切かつ公式な方法は、PythonでGoogle Cloudクライアントライブラリを使用し、subprocess.Popen
を介してgsutil
コマンドを実行しないことです。単にセットアップしていない場合は、この方法を実行不可能にする技術的な制約がない場合は、最初からこの方法で従うことをお勧めするいくつかのテスト。
次のリンクで、相対 概要 および ドキュメント を確認できます。ドキュメンテーションから取られた小さな例は次のようになります:
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!')
費用の管理にDatastoreとCloud Storageでgoogle-cloud-pythonを使用した別の例 here を見つけることができます。