I tried to run the code bellow by following the google tutorials i found here: 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()
But it keeps giving me the following error:
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
Could someone help me with this?
I see you are trying to use the Google Cloud Storage client libraries.
In order to use it, you should first make sure that it is installed in your machine:
pip install --upgrade google-cloud-storage
And then, you should probably set up authentication (if you are using Application Default Credentials, from the documentation you mentioned), by setting up the GOOGLE_APPLICATION_CREDENTIALS
environment variable in the machine where you are running the code, like below. If you are using Windows, follow the steps presented in the documentation, instead.
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/file.json"
Alternatively, you can try using explicit credentials. The only difference between the one you shared (using implicit credentials obtained from the environment) and one using explicit credentials, is that when you declare the GCS client, you should do something like:
storage_client = storage.Client.from_service_account_json('/path/to/SA_key.json')
Once all this is ready, you should have no issues with running the sample code you provided. In order to keep learning about GCS and its client libraries, feel free to search on the documentation I linked and have a look at the library reference page.