Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用应用程序引擎服务帐户时出现断开链接错误_Python_Google App Engine_Oauth 2.0_Google Bigquery_Google Api Python Client - Fatal编程技术网

Python 使用应用程序引擎服务帐户时出现断开链接错误

Python 使用应用程序引擎服务帐户时出现断开链接错误,python,google-app-engine,oauth-2.0,google-bigquery,google-api-python-client,Python,Google App Engine,Oauth 2.0,Google Bigquery,Google Api Python Client,我正在学习这个教程 https://developers.google.com/bigquery/docs/authorization#service-accounts-appengine 这是我的main.py代码 import httplib2 from apiclient.discovery import build from google.appengine.ext import webapp from google.appengine.ext.webapp.util import

我正在学习这个教程

https://developers.google.com/bigquery/docs/authorization#service-accounts-appengine
这是我的main.py代码

import httplib2

from apiclient.discovery import build
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
from oauth2client.appengine import AppAssertionCredentials

# BigQuery API Settings
SCOPE = 'https://www.googleapis.com/auth/bigquery'
PROJECT_NUMBER = 'XXXXXXXXXX' # REPLACE WITH YOUR Project ID

# Create a new API service for interacting with BigQuery
credentials = AppAssertionCredentials(scope=SCOPE)
http = credentials.authorize(httplib2.Http())
bigquery_service = build('bigquery', 'v2', http=http)


class ListDatasets(webapp.RequestHandler):
  def get(self):
    datasets = bigquery_service.datasets()
    listReply = datasets.list(projectId=PROJECT_NUMBER).execute()
    self.response.out.write('Dataset list:')
    self.response.out.write(listReply)


application = webapp.WSGIApplication(
                                     [('/listdatasets(.*)', ListDatasets)],
                                     debug=True)

def main():
  run_wsgi_app(application)

if __name__ == "__main__":
  main()
这是我的app.yaml文件代码

application: bigquerymashup
version: 1
runtime: python
api_version: 1

handlers:
- url: /favicon\.ico
  static_files: favicon.ico
  upload: favicon\.ico

- url: .*
  script: main.py
是的,我在谷歌api控制台团队选项卡中添加了应用引擎服务帐户名,并具有编辑权限。 当上传应用程序并尝试访问其显示的链接时

Oops! This link appears to be broken.
早些时候,我在本地运行了这个程序,并尝试使用link
localhost:8080
访问它。然后我认为本地运行可能会出现错误,所以我将代码上载到

http://bigquerymashup.appspot.com/
但它仍然是错误的

编辑: 更新App.yaml

application: bigquerymashup
version: 1
runtime: python
api_version: 1

handlers:
- url: /favicon\.ico
  static_files: favicon.ico
  upload: favicon\.ico

- url: .*
  script: main.py

- url: /listdatasets
  script: main.py
但是又犯了一个错误

Traceback (most recent call last): File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/_webapp2‌​5.py", line 710, in call handler.get(*groups) TypeError: get() takes exactly 1 argument (2 given) 

您需要定义一个脚本处理程序,该处理程序与您试图定位的URL相匹配

请尝试:
http://[此处为您的应用程序id]。appspot.com/listdatasets


阅读有关处理程序的更多信息。

您需要定义一个脚本处理程序,该脚本处理程序与您尝试查找的URL相匹配

请尝试:
http://[此处为您的应用程序id]。appspot.com/listdatasets


阅读有关处理程序的更多信息。

1。您是否将项目编号添加到此行?项目编号='XXXXXXXXX'#替换为项目ID 2。你想联系什么链接?你的app.yaml文件是什么样子的?我确实添加了项目编号。我已经用app.yaml和其他详细信息更新了问题。我尝试使用localhost:8080和上传代码1的地方联系。您是否将项目编号添加到此行?项目编号='XXXXXXXXX'#替换为项目ID 2。你想联系什么链接?你的app.yaml文件看起来像什么?我确实添加了项目编号。我已经用app.yaml和其他详细信息更新了问题。我尝试使用localhost:8080联系,并在那里上传了代码。我刚刚更新了我的app.yaml(也更新了有问题的app.yaml)正如你所说并试图浏览链接,但现在它给出了另一个错误回溯(最近一次调用是最后一次):File“/base/python\u runtime/python\u lib/versions/1/google/appengine/ext/webapp/\u webapp25.py”,第710行,在call handler.get(*groups)TypeError:get()正好接受一个参数(2个给定)更改“/listdatasets(.*)”到“/listdatasets”。请注意,您更新的app.yaml不正确-您不需要在app.yaml中有“url:/listdatasets”行。catchall“url:.*”处理程序无论如何应该最后一个,因为它将在点击它下面的/listdatasets处理程序之前匹配每个url。这超出了您最初问题的范围(以上链接对此进行了详细说明)但是我会看一下更新我们的示例。thnks dat工作正常。我还有一个疑问。为了让这件事正常运行,我必须将它上传到appspot。dere是否有任何方法可以使用应用引擎服务帐户在本地主机上运行此功能?否,目前没有方法在本地使用应用引擎服务帐户。我刚刚更新了我的App.yaml(更新的app.yaml也有问题)正如你所说,并尝试浏览链接,但现在它给出了另一个错误回溯(最近一次调用):File“/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/_webapp25.py”,第710行,在call handler.get(*groups)TypeError:get()仅接受1个参数(给定2个)将“/listdatasets(.*)”更改为“/listdatasets”。请注意,更新的app.yaml不正确-您不需要在app.yaml中包含“url:/listdatasets”行。catchall“url:”*处理程序无论如何都应该放在最后,因为在点击它下面的/listdatasets处理程序之前,它将匹配每个URL。这超出了原始问题的范围(上面的链接对此进行了解释)但我会看一下更新我们的示例。thnks dat运行良好。我还有一个疑问。为了使这件事正常运行,我必须将其上载到appspot。dere是否可以使用应用引擎服务帐户在localhost中运行此操作?否,目前无法在本地使用应用引擎服务帐户。