jjzjj

greenlet

全部标签

python - 如何在 Windows 上安装 zeroRPC (python)

我想尝试zeroRPC但无法正确安装包。我在Windows7下使用最新的python_xy发行版(python2.7.3),我必须说我没有太多安装新模块的经验,因为发行版已经非常完整。我从gitHub中拉出主zeroRPC-python并尝试执行“pythonsetup.pyinstall”我的第一个问题是“无法定位vcvarsall.bat”。我按照此处说明安装mingw解决了这个问题error:Unabletofindvcvarsall.bat然后我可以运行安装直到结束,但是现在,当我导入zerorpc时,我得到以下ImportError(仅堆栈末尾):C:\Python27\li

python - gevent 库 : "Import Error: no module named greenlet"

大家好,我下载了一个需要geventpython库的脚本,每次运行该脚本时,它都会显示:File"shodan.py",line7,infromgeventimportmonkeyFile"C:\Python27\lib\site-packages\gevent\__init__.py",line48,infromgevent.greenletimportGreenlet,joinall,killallFile"C:\Python27\lib\site-packages\gevent\greenlet.py",line6,infromgevent.hubimportgreenlet,g

python - 在 greenlet 中访问 flask.g

我正在使用Flask+gevent并想访问flask.ggreenlet的目标函数内的全局应用程序。我正在使用copy_current_request_context装饰器,并且情况与文档中给出的示例非常相似:importgeventfromflaskimportcopy_current_request_context,g@app.route('/')defindex():g.user_data='foobar'g.more_user_data='baz'@copy_current_request_contextdefdo_some_work():some_func(g.user_da

python - gevent 中的服务器和同一应用程序中的其他 greenlets

我正在搜索如何在一个程序中的gevent和其他greenlet中运行服务器。所以我想要服务器(多个连接)和一个或两个其他greenlets。这可能吗?如果是,那么如何?最好的问候,马特。 最佳答案 fromgeventwebsocketimportWebSocketServer,WebSocketApplication,ResourceimportgeventclassEchoApplication(WebSocketApplication):defon_open(self):print("Connectionopened")def

python - Python 请求 Session 对象是否在 gevent greenlet 之间共享,线程安全(在 greenlet 之间)?

可以requests库session对象可以在gevented程序中安全地跨greenlets使用吗?编辑-添加更多说明:当一个greenlet因调用套接字向服务器发送请求而屈服时,另一个greenlet是否可以安全地使用同一个套接字(在共享session对象内)发送自己的请求?结束编辑我尝试使用此处发布的代码对此进行测试-https://gist.github.com/donatello/0b399d0353cb29dc91b0-但是我没有收到任何错误或意外结果。但是,这并不能验证线程安全。在测试中,我使用共享session对象发出大量请求并尝试查看该对象是否将请求混淆-这有点天真,

python - 在 gevent 应用程序中,如何杀死所有已启动的 greenlets?

我有一个gevent应用程序,它在多个模块中生成多个greenlet。我希望能够优雅地关闭应用程序(例如,在内部或通过捕获SIGTERM),允许greenlets通过捕获GreenletExit并执行finally很好地终止:子句。如果我有所有正在运行的greenlet的a,我可以执行gevent.killall(list_of_greenlets),但是维护这样一个列表相当麻烦;此外,gevent必须以某种形式保存这个列表。那么,我可以在不维护它们列表的情况下杀死所有已启动的greenlets吗?(我在raspbian上的python2.7上使用gevent1.0.0)

python - Eventlet vs Greenlet vs gevent?

我正在尝试创建一个具有事件循环的GUI框架。一些线程处理UI,一些线程处理事件。我搜索了一下,找到了这三个库,我想知道哪个更好用?有什么优点和缺点?我可以使用这三个库中的一个,甚至可以使用pythonthreads或concurrent库为自己创建一些东西。我很乐意分享任何类型的经验、基准和比较。 最佳答案 您绝对不需要为此目的使用greenlet,因为它是一个低级库,您可以在其上创建轻线程库(如Eventlet和Gevent)。Eventlet、Gevent和更多类似的库为IO绑定(bind)任务(等待文件、网络上的读/写)提供了

python - PyPy 和 PyPy + greenlet 中的 Stackless - 差异

新版PyPy附带了集成的Stackless。据我所知,捆绑的Stackless与2001年的原始Stackless不同。所以主要是带有调度器的绿色线程框架。Greenlet是Stackless的衍生产品,它提供Stackless绿色线程功能作为扩展模块。使用PyPy中的“原生”Stackless比PyPy+greenlet+一些调度程序有什么好处(例如:gevent)?或者问题是我不能在PyPy中使用这些类型的扩展?更具体地说:我知道PyPy有自己的greenlet实现(基于continulet)。但我很好奇在PyPy中将外部greenlet与gevent和内部连接起来的可能性。PyP

python - 在 gevent 中,如何转储所有正在运行的 greenlet 的堆栈跟踪?

出于调试目的,我想遍历所有greenlet并获取它们的踪迹——我如何使用gevent做到这一点?基本上,我想做相当于this的gevent. 最佳答案 您可以使用gc模块遍历堆上的所有对象并搜索greenlet。Greenlets将堆栈跟踪存储为属性gr_frame。importgcimporttracebackfromgreenletimportgreenletforobingc.get_objects():ifnotisinstance(ob,greenlet):continueifnotob:continuelog.error

python - gevent:产生大量greenlets的缺点?

从我在评论中的问题到thisanswer问题"Geventpoolwithnestedwebrequests":假设一个有大量任务,使用gevent.spawn(...)来同时生成所有任务而不是使用gevent池和pool.spawn(...)来限制并发greenlets的数量?表述不同:使用gevent.Pool“限制并发”是否有任何优势,即使要解决的问题不需要?知道什么会构成这个问题的“大量”吗? 最佳答案 在处理很多事情时,它更简洁,也是一种很好的做法。几周前我遇到了这个问题,我正在使用geventspawn来验证一堆针对DN
12