我在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
问题可能在于我导入的某个库吗?我应该检查所有这些以确保它们都具有名称代码吗?
答案 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个空格看起来与人类完全相同。