2011-01-19 85 views
1

我有一个奇怪的问题。 我想要做的是将我的GAE版本从1.3.5更新到1.4.1/1.4.0。 安装后,我想运行dev_appserver。 但有一个错误:GAE更新问题

ERROR 2011-01-19 21:50:11,262 dev_appserver.py:3214] Exception encountered handling request 
Traceback (most recent call last): 
    File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 3184, in _HandleRequest 
    response = RewriteResponse(outfile, self.rewriter_chain) 
    File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 2882, in RewriteResponse 
    response_rewriter(response) 
TypeError: DownloadRewriter() takes exactly 2 arguments (1 given) 

注:我没有改变我的代码和它的工作非常出色的GAE 1.3.5 感谢您的任何答案。

+0

我面对GAE很多奇怪的问题。卸载并重新安装,你应该没问题,至少我希望。否则,您可能想编辑您的答案并粘贴整个堆栈跟踪,以便我们可以帮助您更多。 – Rafid 2011-01-19 14:08:18

回答

0

问题解决了。

我在上面重新安装GAE 3.5时发现。我的C:\ Program Files \ Google \ google_appengine \ google \ appengine \ tools \ dev_appserver.py

Line 2887:def RewriteResponse代码不正确。 正确的版本是:

def RewriteResponse(response_file, 
       response_rewriters=None, 
       request_headers=None): 
    if response_rewriters is None: 
    response_rewriters = CreateResponseRewritersChain() 

    response = AppServerResponse(response_file) 
    for response_rewriter in response_rewriters: 
    if response_rewriter.func_code.co_argcount == 1: 
     response_rewriter(response) 
    else: 
     response_rewriter(response, request_headers) 

    return response 

但我的版本是

def RewriteResponse(response_file, 
        response_rewriters=None, 
        request_headers=None): 
    if response_rewriters is None: 
    response_rewriters = CreateResponseRewritersChain() 

    response = AppServerResponse(response_file) 
    for response_rewriter in response_rewriters: 
    response_rewriter(response) 

    return response 

没有的if-else。 因此,解决方案是将GAE安装在c:\ Program files \ Google \ google_appengine_x .... 不在默认文件夹中。 然后它会是正确的。 ^^

2

问题已解决。 我们再次在“不同的文件夹”处重新安装gae “不同的文件夹”是一个关键。 如果您在默认(相同)文件夹(c:\ program files \ google \ google_appengine)中卸载gae,问题仍然存在。

所以我们将它安装在c:\ program files \ goole \ google_appending_x(x表示任何单词)。 然后它可以工作。