我是一名编程初学者,并且学习如何在Python中使用Google API。
我有:
然而,即使我为此运行了最简单的代码,我也有错误,表示找不到凭证varialbe。
我不知道现在该做什么。请帮助。
这是我的代码:
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)
我有错误:
Traceback(最近一次调用最后一次):文件 “/Users/YELI1/Downloads/googlecloud/sentimentanalysis/simple.py”,line 21,在 sentiment_text(sampletxt)
文件 “/Users/YELI1/Downloads/googlecloud/sentimentanalysis/simple.py”,line 5,在sentiment_text中 client = language.LanguageServiceClient()
文件 “/usr/local/lib/python3.6/site-packages/google/cloud/gapic/language/v1/language_service_client.py” 第147行,在 init 中 ssl_credentials = ssl_credentials)
文件“/usr/local/lib/python3.6/site-packages/google/gax/grpc.py”, 第106行,在create_stub中
credentials = _grpc_google_auth.get_default_credentials(scopes) File
“的/ usr /本地/ LIB / python3.6 /站点包/谷歌/ GAX / _grpc_google_auth.py”, 第62行,在get_default_credentials中 凭证,_ = google.auth.default(范围=范围)
文件 “/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'
答案 0 :(得分:71)
如果您正在使用jupyter笔记本并希望在Python代码中设置GOOGLE_APPLICATION_CREDENTIALS环境变量:
import os
os.environ["GOOGLE_APPLICATION_CREDENTIALS"]="/path/to/file.json"
答案 1 :(得分:6)
如果您在内存中拥有凭据(例如环境变量),并且您不想专门为其创建文件:
from google.cloud import storage
from google.oauth2 import service_account
gcp_json_credentials_dict = json.loads(gcp_credentials_string)
credentials = service_account.Credentials.from_service_account_info(gcp_json_credentials_dict)
client = storage.Client(project=gcp_json_credentials_dict['project_id'], credentials=credentials)
使用 python3.7 和 google-cloud-storage==1.35.0
答案 2 :(得分:1)
另一种测试方法是进入终端并输入:
# Linux/Unix
set | grep GOOGLE_APPLICATION_CREDENTIALS
或
# Windows:
set | Select-String -Pattern GOOGLE_APPLICATION_CREDENTIALS
这将显示环境变量及其所在的路径。如果没有返回任何内容,那么您没有设置变量,或者您可能设置了错误的路径
答案 3 :(得分:0)
我知道此帖子已被确认,但是以下是指定GOOGLE_APPLICATION_CREDENTIALS
client = language.LanguageServiceClient.from_service_account_json("/path/to/file.json")
答案 4 :(得分:0)
通过显式提及凭据并将其传递给客户端,有一种更简单的方法使其工作,如下所示。
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)