Web App中的内部服务器错误:使用Python的Google App Engine中的Google Latitude API

时间:2011-07-13 20:48:51

标签: python google-app-engine

我是python和Google App Engine的新手。我目前正在开发基于位置的Web应用程序,我使用了以下示例代码http://code.google.com/p/latitudesample/

我能够在localhost中运行该程序,但是当我部署该程序并尝试访问该网站时,我收到内部服务器错误消息。

我检查App Engine日志文件,如下所示:

argument 2 to map() must support iteration
Traceback (most recent call last):File"/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/__init__.py", line 700, in __call__
handler.get(*groups)
File "/base/data/home/apps/s~latitudesocial/1.351807357650160822/main.py", line 57, in get
self.request.host_url + OAUTH_CALLBACK_PATH, parameters)
File "/base/data/home/apps/s~latitudesocial/1.351807357650160822/oauth_webapp.py", line 28, in redirect_to_authorization_page
request_token = helper.GetRequestToken(callback_url, parameters)
File "/base/data/home/apps/s~latitudesocial/1.351807357650160822/oauth_appengine.py", line 78, in GetRequestToken
None)
File "/base/data/home/apps/s~latitudesocial/1.351807357650160822/oauth.py", line 262, in sign_request
self.build_signature(signature_method, consumer, token))
File "/base/data/home/apps/s~latitudesocial/1.351807357650160822/oauth.py", line 266, in build_signature
return signature_method.build_signature(self, consumer, token)
File "/base/data/home/apps/s~latitudesocial/1.351807357650160822/oauth.py", line 632, in build_signature
oauth_request, consumer, token)
File "/base/data/home/apps/s~latitudesocial/1.351807357650160822/oauth.py", line 623, in build_signature_base_string
key = '%s&' % escape(consumer.secret)
File "/base/data/home/apps/s~latitudesocial/1.351807357650160822/oauth.py", line 50, in escape
return urllib.quote(s, safe='~')
File "/base/python_runtime/python_dist/lib/python2.5/urllib.py", line 1214, in quote
res = map(safe_map.__getitem__, s)
TypeError: argument 2 to map() must support iteration

我一直试图弄清楚这一点,但到目前为止我没有取得任何进展。

我猜oauth.py

中的第623行有问题

如果可以的话,请帮我找出错误。

    $key = '%s&' % escape(consumer.secret)

我对main.py所做的更改是:

class SetMyOauth(webapp.RequestHandler): 
    def get(self): 
        Config.set('oauth_consumer_key', 'myconsumerkey'), 
        Config.set('oauth_consumer_secret', 'myconsumersecret'), 
        self.response.out.write ("""key and secret set""") 

(2011年7月7日更新)

进一步查询时,我在运行调试器时遇到以下错误

C:\Python25\lib\threading.py:699: RuntimeWarning: tp_compare didn't return -1 or -2 for exception
  return _active[_get_ident()]
Exception exceptions.SystemError: 'error return without exception set' in <generator object at 0x03C41378> ignored

它突出显示了以下代码:

def escape(s):
    """Escape a URL including any /."""
    return urllib.quote(s, safe='~')

与日志文件中记录的代码相同。

但是,当我使用开发服务器运行代码时,应用程序正常运行,没有错误。

0 个答案:

没有答案