私はプログラミング初心者であり、Pythonでgoogle APIを使用する方法を学びます。
私は持っています:
ただし、このために最も単純なコードを実行した場合でも、クレデンシャル変数が見つからないというエラーが発生します。
今何をすべきかわかりません。親切に助けてください。
これは私のコードです:
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)
そしてエラーがあります:
トレースバック(最後の最後の呼び出し):ファイル「/Users/YELI1/Downloads/googlecloud/sentimentanalysis/simple.py」、21行目、sentiment_text(sampletxt)
ファイル「/Users/YELI1/Downloads/googlecloud/sentimentanalysis/simple.py」、5行目、sentiment_text client = language.LanguageServiceClient()
ファイル「/usr/local/lib/python3.6/site-packages/google/cloud/gapic/language/v1/language_service_client.py」、147行目、initssl_credentials = ssl_credentials)
Create_stubのファイル「/usr/local/lib/python3.6/site-packages/google/gax/grpc.py」の106行目
credentials = _grpc_google_auth.get_default_credentials(scopes) File
「/usr/local/lib/python3.6/site-packages/google/gax/_grpc_google_auth.py」、62行目、get_default_credentials認証情報、_ = google.auth.default(scopes = scopes)
ファイル「/usr/local/lib/python3.6/site-packages/google/auth/_default.py」、行282、デフォルト
raise exceptions.DefaultCredentialsError(_HELP_MESSAGE) google.auth.exceptions.DefaultCredentialsError: Could not
資格情報を自動的に決定します。 GOOGLE_APPLICATION_CREDENTIALSを設定するか、資格情報を明示的に作成してアプリケーションを再実行してください。詳細については、 https://developers.google.com/accounts/docs/application-default-credentials をご覧ください。
import os
print(os.environ['GOOGLE_APPLICATION_CREDENTIALS'])
出力トレースバック(最新の呼び出しが最後):
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/python3.6/os.py", line 669, in getitem raise KeyError(key) from None KeyError: 'GOOGLE_APPLICATION_CREDENTIALS'
Jupyterノートブックで作業していて、PythonコードでGOOGLE_APPLICATION_CREDENTIALS環境変数を設定する場合:
import os
os.environ["GOOGLE_APPLICATION_CREDENTIALS"]="/path/to/file.json"
この投稿には回答があったことは知っていますが、以下はGOOGLE_APPLICATION_CREDENTIALS
変数を指定するよりクリーンな方法です。
client = language.LanguageServiceClient.from_service_account_json("/path/to/file.json")
これをテストするもう1つの方法は、ターミナルに移動して次のように入力することです。
# Linux/Unix
set | grep GOOGLE_APPLICATION_CREDENTIALS
または
# Windows:
set | Select-String -Pattern GOOGLE_APPLICATION_CREDENTIALS
これにより、環境変数とそれが置かれているパスが表示されます。これが何も返さない場合は、変数を設定していないか、間違ったパスが設定されている可能性があります
以下に示すように、資格情報を明示的に言及し、クライアントに渡すことで、より簡単に機能させる方法が1つあります。
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)