Mar*_*eis 12 python google-cloud-storage google-cloud-platform
我尝试按照我在此处找到的google教程运行下面的代码: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()
Run Code Online (Sandbox Code Playgroud)
但它一直给我以下错误:
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
Run Code Online (Sandbox Code Playgroud)
有人可以帮我吗?
dse*_*sto 24
我发现您正在尝试使用Google云端存储客户端库.
要使用它,首先应确保它已安装在您的机器中:
pip install --upgrade google-cloud-storage
Run Code Online (Sandbox Code Playgroud)
然后,您应该通过在运行代码的机器中设置环境变量来设置身份验证(如果您使用的是应用程序默认凭据,请参阅您提到的文档),GOOGLE_APPLICATION_CREDENTIALS如下所示.如果您使用的是Windows,请按照文档中提供的步骤进行操作.
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/file.json"
Run Code Online (Sandbox Code Playgroud)
或者,您可以尝试使用显式凭据.您共享的一个(使用从环境获取的隐式凭据)和使用显式凭据的一个之间的唯一区别是,当您声明GCS客户端时,您应该执行以下操作:
storage_client = storage.Client.from_service_account_json('/path/to/SA_key.json')
Run Code Online (Sandbox Code Playgroud)
完成所有这些后,运行您提供的示例代码应该没有问题.为了不断了解GCS及其客户端库,请随意搜索我链接的文档,并查看库参考页面.