web-dev-qa-db-ja.com

google.cloudストレージのインポート:ストレージをインポートできません

ここにある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()

しかし、それは私に次のエラーを与え続けます:

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

誰かがこれを手伝ってくれますか?

11
Mariane Reis

Google Cloud Storageクライアントライブラリ を使用しようとしているようです。

それを使用するには、最初にマシンにインストールされていることを確認する必要があります。

pip install --upgrade google-cloud-storage

そして、おそらく、あなたが実行しているマシンでGOOGLE_APPLICATION_CREDENTIALS環境変数を設定することにより、(あなたが言及したドキュメントから Application Default Credentials を使用している場合)認証を設定する必要があります以下のようなコード。 Windowsを使用している場合は、代わりに ドキュメントに記載されている手順 に従ってください。

export GOOGLE_APPLICATION_CREDENTIALS="/path/to/file.json"

または、 明示的な資格情報を使用 を試すこともできます。共有したもの(環境から取得した暗黙的な資格情報を使用)と明示的な資格情報を使用したものとの唯一の違いは、GCSクライアントを宣言するとき、次のようなことを行う必要があることです。

storage_client = storage.Client.from_service_account_json('/path/to/SA_key.json')

これがすべて準備できたら、提供したサンプルコードの実行に問題はないはずです。 GCSとそのクライアントライブラリについて学習し続けるには、リンクしたドキュメントを自由に検索して、 ライブラリリファレンスページ をご覧ください。

22
dsesto

また、main.pyファイルとrequirements.txtは、展開される機能と同じディレクトリおよび同じディレクトリにあります。

私は環境変数を指定した後でもこれをしなければならなかったので、ちょうど参考になります。

0
Togobingi