使用python导入GCP资源时出现凭据错误

使用python导入GCP资源时出现凭据错误,python,authentication,google-cloud-platform,credentials,Python,Authentication,Google Cloud Platform,Credentials,我是编程新手,正在尝试使用python导入现有的GCP资源。但是我在代码本身的开头遇到了这个特殊的“默认凭据错误”。感谢您的帮助 Exception has occurred: DefaultCredentialsError Could not automatically determine credentials. Please set GOOGLE_APPLICATION_CREDENTIALS or explicitly create credentials and re-run the

我是编程新手,正在尝试使用python导入现有的GCP资源。但是我在代码本身的开头遇到了这个特殊的“默认凭据错误”。感谢您的帮助

Exception has occurred: DefaultCredentialsError
Could not automatically determine credentials. Please set GOOGLE_APPLICATION_CREDENTIALS or explicitly create credentials and re-run the application. For more information, please see https://cloud.google.com/docs/authentication/getting-started
  File "C:\Users\dilee\Desktop\Python\GCP\start.py", line 4, in <module>
    publisher = pubsub_v1.PublisherClient()
发生异常:DefaultCredentialsError 无法自动确定凭据。请设置GOOGLE_应用程序_凭据或显式创建凭据并重新运行应用程序。有关更多信息,请参阅https://cloud.google.com/docs/authentication/getting-started 文件“C:\Users\dilee\Desktop\Python\GCP\start.py”,第4行,在 publisher=pubsub_v1.publisher客户端() 第二个错误

Exception has occurred: DefaultCredentialsError
File "C:\Users\dilee\Desktop\PythonGCP\learning-project-311506-1b36ea6ccc86.json" was not found.
  File "C:\Users\dilee\Desktop\PythonGCP\start.py", line 6, in <module>
    publisher = pubsub.PublisherClient()
发生异常:DefaultCredentialsError 未找到文件“C:\Users\dilee\Desktop\PythonGCP\learning-project-311506-1b36ea6ccc86.json”。 文件“C:\Users\dilee\Desktop\PythonGCP\start.py”,第6行,在 publisher=pubsub.PublisherClient()
Google Cloud API实际上需要一个密钥来知道您使用的是哪个Google帐户以及您的权限。此密钥采用凭据的形式

所以,基本上,你要做的是首先认证你自己。 如果您在本地编码,最好的方法是首先键入
gcloud auth application default login
(如果您想设置默认登录名),或者只键入
gcloud auth login
(但是,只有当前使用的命令行将被标识到google cloud)

然后您就可以正常使用GCP API:)


查看您是否需要更多详细信息。

谷歌云API实际上需要一个密钥来了解您正在使用的谷歌帐户以及您的权限。此密钥采用凭据的形式

所以,基本上,你要做的是首先认证你自己。 如果您在本地编码,最好的方法是首先键入
gcloud auth application default login
(如果您想设置默认登录名),或者只键入
gcloud auth login
(但是,只有当前使用的命令行将被标识到google cloud)

然后您就可以正常使用GCP API:)


查看您是否需要更多详细信息。

如果您对身份验证策略不满意,可以从这里开始:,然后继续阅读左侧的主题,具体取决于您选择使用的身份验证策略。如果您对身份验证策略不满意,可以从这里开始:,然后继续阅读左边的主题,这取决于您选择使用的身份验证策略。现在,它显示了一个不同的错误,即尽管我正确设置了路径,但无法找到JSON文件。出现异常:未找到DefaultCredentialsError文件“C:\Users\dilee\Desktop\PythonGCP\learning-project-311506-1b36ea6ccc86.json”。文件“C:\Users\dilee\Desktop\PythonGCP\start.py”,第6行,在publisher=pubsub.PublisherClient()中,我很不确定为什么它无法从您提供的路径中找到该文件,即使您提供了正确的路径。不过,您可以尝试用单引号替换双引号。不过,作为临时解决方案,我认为您可以尝试直接在python文件上设置环境变量。您只需使用:
导入os
,然后
os.environ[“GOOGLE\u APPLICATION\u CREDENTIALS”]=“path\u to\u json.json”
小心,但要正确编写它,请使用
/
(我认为它在Windows下工作)或使用\\而不是简单的\作为转义字符。实际上,在我重新启动visual studio代码后使用相同的路径工作程序。无论如何,感谢您提供的替代解决方案。现在它显示了一个不同的错误,即尽管我正确设置了路径,但无法找到JSON文件。出现异常:未找到DefaultCredentialsError文件“C:\Users\dilee\Desktop\PythonGCP\learning-project-311506-1b36ea6ccc86.json”。文件“C:\Users\dilee\Desktop\PythonGCP\start.py”,第6行,在publisher=pubsub.PublisherClient()中,我很不确定为什么它无法从您提供的路径中找到该文件,即使您提供了正确的路径。不过,您可以尝试用单引号替换双引号。不过,作为临时解决方案,我认为您可以尝试直接在python文件上设置环境变量。您只需使用:
导入os
,然后
os.environ[“GOOGLE\u APPLICATION\u CREDENTIALS”]=“path\u to\u json.json”
小心,但要正确编写它,请使用
/
(我认为它在Windows下工作)或使用\\而不是简单的\作为转义字符。实际上,在我重新启动visual studio代码后使用相同的路径工作程序。无论如何,感谢您提供的替代解决方案。