Python 电机错误:需要回调
使用来自的示例代码 正在获取回溯:Python 电机错误:需要回调,python,mongodb,tornado,tornado-motor,Python,Mongodb,Tornado,Tornado Motor,使用来自的示例代码 正在获取回溯: Traceback (most recent call last): File "app_main.py", line 51, in run_toplevel File "chat.py", line 22, in <module> tornado.ioloop.IOLoop.current().run_sync(do_find) File "/home/user/venv/packmon-pypy/site-packages/
Traceback (most recent call last):
File "app_main.py", line 51, in run_toplevel
File "chat.py", line 22, in <module>
tornado.ioloop.IOLoop.current().run_sync(do_find)
File "/home/user/venv/packmon-pypy/site-packages/tornado/ioloop.py", line 370, in run_sync
return future_cell[0].result()
File "/home/user/venv/packmon-pypy/site-packages/tornado/concurrent.py", line 129, in result
raise_exc_info(self.__exc_info)
File "/home/user/venv/packmon-pypy/site-packages/tornado/gen.py", line 221, in wrapper
runner.run()
File "/home/user/venv/packmon-pypy/site-packages/tornado/gen.py", line 507, in run
yielded = self.gen.send(next)
File "chat.py", line 19, in do_find
for document in (yield cursor.to_list(length=100)):
File "/home/user/venv/packmon-pypy/site-packages/motor/__init__.py", line 1465, in to_list
check_callable(callback, required=True)
File "/home/user/venv/packmon-pypy/site-packages/motor/__init__.py", line 74, in check_callable
raise TypeError("callback is required")
TypeError: callback is required
回溯(最近一次呼叫最后一次):
运行顶层第51行文件“app_main.py”
文件“chat.py”,第22行,在
tornado.ioloop.ioloop.current().运行同步(do\u查找)
文件“/home/user/venv/packmon-pypypy/site-packages/tornado/ioloop.py”,第370行,运行同步
返回未来_单元格[0]。结果()
文件“/home/user/venv/packmon-pypypy/site-packages/tornado/concurrent.py”,结果中的第129行
提升exc信息(自我信息)
文件“/home/user/venv/packmon-pypypy/site-packages/tornado/gen.py”,第221行,在包装器中
runner.run()
文件“/home/user/venv/packmon-pypypy/site-packages/tornado/gen.py”,第507行,运行中
已生成=self.gen.send(下一个)
do_find中第19行的文件“chat.py”
对于中的文档(将光标移到列表(长度=100)):
文件“/home/user/venv/packmon-pypypy/site-packages/motor/_-init__.py”,第1465行,在to_列表中
检查是否可调用(回调,必需=True)
文件“/home/user/venv/packmon-pypypy/site-packages/motor/_-init__.py”,第74行,可调用
raise TypeError(“需要回调”)
TypeError:需要回调
文档中说,如果没有传递回调,则应该返回Future,但它会抛出一个异常。使用gen.Task可以做到这一点,但我不明白为什么教程中的简单示例不起作用。您使用了带有“稳定”代码的“最新”教程
背景:。版本0.1.2是当前的“稳定”版本,具有基于回调的API。如“稳定”教程所示,您可以将其与gen.Task
一起使用。正如本教程将告诉您的,您应该实际使用motor.Op
,它类似于gen.Task
,具有更好的异常语义
您正在阅读的“最新”教程反映了我在GitHub上Motor的主分支中的极不稳定的代码。这将在未来几个月内发布为Motor 0.2,并成为新的“稳定”。同时,请遵循当前的“稳定”文档。后续:2014年4月,现在是0.2。
Traceback (most recent call last):
File "app_main.py", line 51, in run_toplevel
File "chat.py", line 22, in <module>
tornado.ioloop.IOLoop.current().run_sync(do_find)
File "/home/user/venv/packmon-pypy/site-packages/tornado/ioloop.py", line 370, in run_sync
return future_cell[0].result()
File "/home/user/venv/packmon-pypy/site-packages/tornado/concurrent.py", line 129, in result
raise_exc_info(self.__exc_info)
File "/home/user/venv/packmon-pypy/site-packages/tornado/gen.py", line 221, in wrapper
runner.run()
File "/home/user/venv/packmon-pypy/site-packages/tornado/gen.py", line 507, in run
yielded = self.gen.send(next)
File "chat.py", line 19, in do_find
for document in (yield cursor.to_list(length=100)):
File "/home/user/venv/packmon-pypy/site-packages/motor/__init__.py", line 1465, in to_list
check_callable(callback, required=True)
File "/home/user/venv/packmon-pypy/site-packages/motor/__init__.py", line 74, in check_callable
raise TypeError("callback is required")
TypeError: callback is required