空白页但没有错误 - Python Appengine

时间:2011-01-02 12:57:20

标签: python google-app-engine

我在appengine python网站上收到间歇性的空白页面。通常,这些是在启动新进程或刷新缓存时发生的。有一个白页服务,一旦服务一切都很好。

这与此处的错误基本相同:

http://groups.google.com/group/google-appengine/browse_thread/thread/c072383dc970e450

但是,我有双重和三重检查我的python文件上有正确的代码(以下内容被复制并粘贴):

def main():
    run_wsgi_app(application)

if __name__ == "__main__":
    main()

以下是生成空白页的日志中的示例响应:

01-02 04:46AM 48.539 / 200 188ms 570cpu_ms 383api_cpu_ms 0kb
     

Mozilla / 5.0(Windows; U; Windows NT   6.0; en-US)AppleWebKit / 534.13(KHTML,与Gecko一样)Chrome / 9.0.597.19   Safari浏览器/ 534.13,gzip的(GFE),gzip的(GFE),gzip的(GFE)       86.164.42.252 - tjcritchlow [02 / Jan / 2011:04:46:48 -0800]“获取/   HTTP / 1.1“200 124 - ”Mozilla / 5.0   (Windows; U; Windows NT 6.0; en-US)   AppleWebKit / 534.13(KHTML,和Gecko一样)   镀铬/ 9.0.597.19   Safari浏览器/ 534.13,gzip的(GFE),gzip的(GFE),gzip的(GFE)”   “www.7bks.com”ms = 188 cpu_ms = 570   api_cpu_ms = 383 cpm_usd = 0.016028       I 01-02 04:46 AM 48.724       得救。 key: appstats :008500,部分:82字节,完整:92081字节,   开销:0.001 + 0.005;链接:   http://www.7bks.com/stats/details?time=1293972408543

欢迎任何有关如何进一步调试或解决此问题的建议。

我有几个不同的python文件,这是我app.yaml的处理程序。但我已经检查了所有这些内容,以确保它们在底部都有正确的名称代码。

handlers:

- url: /admin/.*
  script: admin.py
  login: admin

- url: /googleanalytics/
  script: googleanalytics.py
  login: admin

- url: /cleanupsessions/
  script: cleanupsessions.py
  login: admin

- url: /robots.txt
  static_files: robots.txt
  upload: robots.txt

- url: /favicon.ico
  static_files: images/favicon.ico
  upload: images/favicon.ico

- url: /images
  static_dir: images

- url: /css
  static_dir: css

- url: /jquery
  static_dir: jquery

- url: /.*
  script: 7books.py

error_handlers:
  - file: customerror.html

问题可能在于我导入的某个库吗?我应该检查所有这些以确保它们都具有名称代码吗?

3 个答案:

答案 0 :(得分:1)

关于空白页面问题,除非您可以将问题范围缩小到特定的代码段或GAE堆栈,否则可能会涉及调试。

Appstats是一个GAE工具,可以挂钩每个Web请求(作为WSGI中间件),并记录请求中的性能,调试和其他一些信息,并将它们聚合在一个管理界面中,您可以通过GAE管理站点访问它们。这是一种很好的方法,可以查看错误的追溯,并监控您的网站是否存在错误(一旦您安装了appstats,它就会在请求列表中显示为黄色框“E”行项目。)

首先,您应按照以下指示设置Appstats:

http://code.google.com/appengine/docs/python/tools/appstats.html

...它会告诉你有关每一个的有用信息 请求,尤其是有错误的请求,包括Python回溯 包含出错的地方以及调用堆栈中的位置,就像您在使用Google App Engine Launcher本地调试代码时甚至只是使用Python CLI或iPython一样习惯了。

然后,下次看到空白页面时,请跳到管理页面或 到appstats,登录,你会有一个追溯,告诉你 代码中的某些地方出现了问题。

最有可能的是,这只是过早或过早的回归 代码中某处未处理的边缘情况,但它可能就像 很容易成为宇宙射线,直到你有appstats看你的请求 记录并调试错误。

一旦安装了Appstats并重现了问题,请粘贴上面的回溯,(记得删除任何用户信息,例如可能在回溯中的密码),我将修改此响应以匹配。

答案 1 :(得分:0)

我在经历了很多挫折后才解决了这个问题。

我已将我的脚本处理程序重命名为'site.py',将其重命名为'main.py'已解决所有问题。

我最好的猜测是,在我的site.py上,库存python“site”模块在类路径上占主导地位。如果有人知道更多,请在这里发表评论。

答案 2 :(得分:0)

确保您的python缩进是一致的。例如,使用制表符或4个空格或2个空格...不要在同一个函数中混合它们。这为我解决了!这很烦人,因为一个标签和4个空格看起来与人类完全相同。