使pubsubhubbub中心工作

4 投票
1 回答
1265 浏览
提问于 2025-04-15 20:00

我按照这个链接中的说明 http://code.google.com/p/pubsubhubbub/wiki/DeveloperGettingStartedGuide 设置了一个中心(hub)。

当我启动这个中心时,浏览器里出现了一些警告信息:

$ sudo python2.5 google_appengine/dev_appserver.py pubsubhubbub/hub/
INFO     2010-03-04 12:29:57,928 appengine_rpc.py:157] Server: appengine.google.com
INFO     2010-03-04 12:29:57,959 appcfg.py:329] Checking for updates to the SDK.
WARNING  2010-03-04 12:29:58,272 datastore_file_stub.py:418] Could not read datastore data from /tmp/dev_appserver.datastore
WARNING  2010-03-04 12:29:58,273 datastore_file_stub.py:418] Could not read datastore data from /tmp/dev_appserver.datastore.history
INFO     2010-03-04 12:29:58,349 dev_appserver_main.py:465] Running application pubsubhubbub on port 8080: http://localhost:8080

你可以在这里查看详细信息 http://pastie.org/853356

然后,当我在浏览器中输入 http://localhost:8080 时,浏览器和控制台都抛出了一个很糟糕的错误,叫做AttributeError:

ERROR    2010-03-04 12:31:27,735 dev_appserver.py:3000] Exception encountered handling request
Traceback (most recent call last):
  File "/home/pentarim/webdev/pshb/google_appengine/google/appengine/tools/dev_appserver.py", line 2969, in _HandleRequest
    base_env_dict=env_dict)
  File "/home/pentarim/webdev/pshb/google_appengine/google/appengine/tools/dev_appserver.py", line 406, in Dispatch
    base_env_dict=base_env_dict)
  File "/home/pentarim/webdev/pshb/google_appengine/google/appengine/tools/dev_appserver.py", line 2238, in Dispatch
    self._module_dict)
  File "/home/pentarim/webdev/pshb/google_appengine/google/appengine/tools/dev_appserver.py", line 2156, in ExecuteCGI
    reset_modules = exec_script(handler_path, cgi_path, hook)
  File "/home/pentarim/webdev/pshb/google_appengine/google/appengine/tools/dev_appserver.py", line 2052, in ExecuteOrImportScript
    exec module_code in script_module.__dict__
  File "/home/pentarim/webdev/pshb/pubsubhubbub/hub/main.py", line 116, in <module>
    import dos
  File "/home/pentarim/webdev/pshb/google_appengine/google/appengine/tools/dev_appserver.py", line 1158, in Decorate
    return func(self, *args, **kwargs)
  File "/home/pentarim/webdev/pshb/google_appengine/google/appengine/tools/dev_appserver.py", line 1806, in load_module
    return self.FindAndLoadModule(submodule, fullname, search_path)
  File "/home/pentarim/webdev/pshb/google_appengine/google/appengine/tools/dev_appserver.py", line 1158, in Decorate
    return func(self, *args, **kwargs)
  File "/home/pentarim/webdev/pshb/google_appengine/google/appengine/tools/dev_appserver.py", line 1708, in FindAndLoadModule
    description)
  File "/home/pentarim/webdev/pshb/google_appengine/google/appengine/tools/dev_appserver.py", line 1158, in Decorate
    return func(self, *args, **kwargs)
  File "/home/pentarim/webdev/pshb/google_appengine/google/appengine/tools/dev_appserver.py", line 1659, in LoadModuleRestricted
    description)
  File "/home/pentarim/webdev/pshb/pubsubhubbub/hub/dos.py", line 219, in <module>
    offset_multi=memcache.offset_multi,
AttributeError: 'module' object has no attribute 'offset_multi'
INFO     2010-03-04 12:31:27,749 dev_appserver.py:3029] "GET / HTTP/1.1" 500 -

详细信息可以在这里找到 http://pastie.org/853357

作为一个刚接触Python的新手,我需要一些帮助,有什么建议吗?

1 个回答

3

这个教程在 http://code.google.com/p/pubsubhubbub/wiki/DeveloperGettingStartedGuide 上已经过时了,你需要使用至少是 Google App Engine 1.2.8 版本才能让它正常工作(这个版本增加了新的 memcache 的 offset_multi 方法,以及对增减操作的批量支持)。

撰写回答