Python: How do I resolve oauth2client.client.ApplicationDefaultCredentialsError: The Application Default Credentials are not available?
Deborah Swanson
python at deborahswanson.net
Sat Feb 4 22:16:25 EST 2017
david.amadi at digital.beis.gov.uk wrote, on
Saturday, February 04, 2017 3:39 PM
>
> Hello All,
>
> I'm a newbie to python programming - got into it
> predominately for the purposes of machine learning and data
> mining and even though I've committed several weeks to
> learning the scripting language, I have struggled to fully
> grasp how it works.
>
> I'm looking to scrape title, video Id, view Count, like
> Count, dislike Count, comment Count, favourite Count etc off
> YouTube using a python script I found via an online tutorial.
>
> I have installed 'unidecode' and 'google-api-python-client'
> packages via my terminal. I have also enabled YouTube Data
> Api V3 and I'm getting the error below each time I run the script.
>
> Could anyone please point me in the right direction?
>
> Thanks a lot in advance for your help
>
> ****
> Traceback (most recent call last):
> File "/Users/*Path*/ML with Python/youtube_search.py", line
> 73, in <module>
> youtube_search(args)
> File "/Users/*Path*/ML with Python/youtube_search.py", line
> 21, in youtube_search
> youtube = build(YOUTUBE_API_SERVICE_NAME,
> YOUTUBE_API_VERSION, developerKey=DEVELOPER_KEY)
> File
> "/Users/*Path*/anaconda/lib/python3.5/site-packages/oauth2clie
> nt/_helpers.py", line 133, in positional_wrapper
> return wrapped(*args, **kwargs)
> File
> "/Users/*Path*/anaconda/lib/python3.5/site-packages/googleapic
> lient/discovery.py", line 226, in build
> credentials=credentials)
> File
> "/Users/*Path*/anaconda/lib/python3.5/site-packages/oauth2clie
> nt/_helpers.py", line 133, in positional_wrapper
> return wrapped(*args, **kwargs)
> File
> "/Users/*Path*/anaconda/lib/python3.5/site-packages/googleapic
> lient/discovery.py", line 358, in build_from_document
> credentials = _auth.default_credentials()
> File
> "/Users/*Path*/anaconda/lib/python3.5/site-packages/googleapic
> lient/_auth.py", line 41, in default_credentials
> return
> oauth2client.client.GoogleCredentials.get_application_default()
> File
> "/Users/*Path*/anaconda/lib/python3.5/site-packages/oauth2clie
> nt/client.py", line 1264, in get_application_default
> return GoogleCredentials._get_implicit_credentials()
> File
> "/Users/*Path*/anaconda/lib/python3.5/site-packages/oauth2clie
> nt/client.py", line 1254, in _get_implicit_credentials
> raise ApplicationDefaultCredentialsError(ADC_HELP_MSG)
> oauth2client.client.ApplicationDefaultCredentialsError: The
> Application Default Credentials are not available. They are
> available if running in Google Compute Engine. Otherwise, the
> environment variable GOOGLE_APPLICATION_CREDENTIALS must be
> defined pointing to a file defining the credentials. See
> https://developers.google.com/accounts/docs/application-defaul
t-credentials for more information.
--
Communications with the Department for Business, Innovation and Skills
may
be automatically logged, monitored and/or recorded for legal purposes.
--
I'm also a relatively new python coder (little over a year), but it
seems plain to me that "The Application Default Credentials ... are
available if running in Google Compute Engine. Otherwise, the
environment variable GOOGLE_APPLICATION_CREDENTIALS must be defined
pointing to a file defining the credentials. See
https://developers.google.com/accounts/docs/application-default-credenti
als for more information."
If you're not running in Google Compute Engine, you need to make a file
defining the credentials, and supposedly there are instructions or
requirements in the link above.
Looks like Anaconda tried to get the credentials by calling its
_auth.default_credentials() function:
credentials = _auth.default_credentials()
from "python3.5/site-packages/googleapiclient/discovery.py", but it
failed. I think you need to read that link and make the file it wants to
find.
Deborah
More information about the Python-list
mailing list