Я пытаюсь использовать модуль gevent.local, чтобы иметь контекст greenlet. Следуя примеру в: http://www.gevent.org/gevent.local.html Я попробовал этот пример кода:Как использовать локальный модуль gevent
#!env python
import gevent
from gevent import local
def foo():
print("IN FOO")
data = local.local()
data.numbers = 42
bar()
def bar():
print("IN BAR")
data = local.local()
print(data.numbers)
def main():
foo_gl = gevent.Greenlet(foo)
print("starting foo")
foo_gl.start()
gevent.joinall([foo_gl])
if __name__ == "__main__":
main()
Но я получаю сообщение об ошибке:
$ mytest/local.py
starting foo
IN FOO
IN BAR
Traceback (most recent call last):
File "/Users/omerholzinger/.virtualenvs/sorites/lib/python2.7/site-packages/gevent/greenlet.py", line 327, in run
result = self._run(*self.args, **self.kwargs)
File "gl_test/local.py", line 11, in foo
bar()
File "gl_test/local.py", line 16, in bar
print(data.numbers)
File "/Users/omerholzinger/.virtualenvs/sorites/lib/python2.7/site-packages/gevent/local.py", line 186, in __getattribute__
return object.__getattribute__(self, name)
AttributeError: 'local' object has no attribute 'numbers'
<Greenlet at 0x1053b2410: foo> failed with AttributeError
Что я здесь отсутствует? Благодаря!