wake-up-neo.com

Legen Sie GOOGLE_APPLICATION_CREDENTIALS im Python-Projekt zur Verwendung der Google-API fest

Ich bin ein Programmieranfänger und lerne, wie man Google API mit Python verwendet.

Ich habe:

  1. ich habe ein Projekt in der Google Cloud erstellt und die API, die ich verwenden möchte, Natural Language API aktiviert.
  2. hat einen Berechtigungsnachweis erstellt und die Berechtigungsnachweis-JSON-Datei heruntergeladen und als apikey.JSON gespeichert
  3. Im Terminal habe ich diesen Befehl ausgeführt: export GOOGLE_APPLICATION_CREDENTIALS = apikey.JSON, es wurde kein Fehler ausgegeben.

Selbst wenn ich dafür die einfachsten Codes ausgeführt habe, habe ich Fehler, die besagen, dass der Berechtigungsnachweis varialbe nicht gefunden wird. 

Ich bin nicht sicher, was ich jetzt tun soll. Bitte hilf mir.

Dies ist mein Code:

from google.cloud import language

def sentiment_text(text):

    client = language.LanguageServiceClient()

    sentiment = client.analyze_sentiment(text).document_sentiment

    print('Score: {}'.format(sentiment.score))
    print('Magnitude: {}'.format(sentiment.magnitude))

sampletxt='Python is great'

sentiment_text(sampletxt)

Und ich habe Fehler:

Traceback (letzter Anruf zuletzt): Datei "/Users/YELI1/Downloads/googlecloud/sentimentanalysis/simple.py", Zeile 21, in Sentiment_text (Sampletxt)

Datei "/Users/YELI1/Downloads/googlecloud/sentimentanalysis/simple.py", Zeile 5, in sentiment_text client = language.LanguageServiceClient ()

Datei "/usr/local/lib/python3.6/site-packages/google/cloud/gapic/language/v1/language_service_client.py", Zeile 147 in init ssl_credentials = ssl_credentials)

Datei "/usr/local/lib/python3.6/site-packages/google/gax/grpc.py", Zeile 106 in create_stub

credentials = _grpc_google_auth.get_default_credentials(scopes)   File

"/usr/local/lib/python3.6/site-packages/google/gax/_grpc_google_auth.py", Zeile 62 in get_default_credentials Anmeldeinformationen, _ = google.auth.default (Bereiche = Bereiche)

Datei "/usr/local/lib/python3.6/site-packages/google/auth/_default.py", Zeile 282 im Auslieferungszustand

raise exceptions.DefaultCredentialsError(_HELP_MESSAGE) google.auth.exceptions.DefaultCredentialsError: Could not

anmeldeinformationen automatisch ermitteln. Bitte setzen Sie GOOGLE_APPLICATION_CREDENTIALS oder erstellen Sie explizit einen Berechtigungsnachweis und Führen Sie die Anwendung erneut aus. Weitere Informationen finden Sie unter https://developers.google.com/accounts/docs/application-default-credentials .

import os 
print(os.environ['GOOGLE_APPLICATION_CREDENTIALS']) 

Ausgabe-Traceback (letzter Anruf zuletzt): 

  File "/Users/YELI1/Downloads/googlecloud/sentimentanalysis/simple‌​.py", line 2, in <module>  
print(os.environ['GOOGLE_APPLICATION_CREDENTIALS']) 
   File "/usr/local/Cellar/python3/3.6.2/Frameworks/Python.framework‌​/Versions/3.6/lib/py‌​thon3.6/os.py", line 669, in getitem  
raise KeyError(key) from None KeyError: 'GOOGLE_APPLICATION_CREDENTIALS'
15
Liam

Wenn Sie an einem Jupyter-Notebook arbeiten und die Umgebungsvariable GOOGLE_APPLICATION_CREDENTIALS im Python-Code festlegen möchten:

import os
os.environ["GOOGLE_APPLICATION_CREDENTIALS"]="/path/to/file.json"
63
Marius

Sie können dies auch testen, indem Sie in das Terminal gehen und Folgendes eingeben: 

set | grep GOOGLE_APPLICATION_CREDENTIALS 

dies zeigt Ihnen die Umgebungsvariable und den Pfad, in dem sie sich befindet. Wenn dies nichts zurückgibt, haben Sie die Variable nicht festgelegt, oder Sie haben den falschen Pfad festgelegt

1
seanbrhn3

Ich weiß, dass dieser Beitrag beantwortet wurde, aber das Folgende ist eine saubere Art, den GOOGLE_APPLICATION_CREDENTIALS

client = language.LanguageServiceClient.from_service_account_json("/path/to/file.json")
0
sdikby

Es gibt einen einfacheren Weg, um es zum Laufen zu bringen, indem explizit Anmeldeinformationen erwähnt und wie unten gezeigt an den Kunden weitergegeben werden.

    import os
    from google.oauth2 import service_account

    credentials = service_account.Credentials.from_service_account_file("your-json- 
    file-path-with-filename.json")
    client = language.LanguageServiceClient(credentials=credentials)
0
rishi jain