安装和配置Google Cloud SDK gsutil
命令后,只需使用Windows cmd键入其名称和参数(-s)即可运行。
以下是示例:
"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)
有没有办法在Windows上使用Python运行gsutil
?
答案 0 :(得分:4)
请注意,与Google云端存储互动的正确和官方方式是使用适用于Python的Google Cloud Client Library
而不是通过gsutil
运行subprocess.Popen
命令。
如果你没有设置一些测试我建议你从一开始就按照这种方式进行操作,如果没有任何技术限制使得这种做法不切实际。
您可以在以下链接中查看相对Overview和Documentation。 从文档中获取的一个小例子如下:
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!')
您可以使用google-cloud-python与数据存储区和云存储系统找到更多示例here来管理费用。
答案 1 :(得分:-1)
您需要使用args列表。
p = subprocess.Popen(['C:/Program Files (x86)/Google/Cloud SDK/google-cloud-sdk/bin/gsutil', 'version'] , shell=True)