如何解决gevent.hub.LoopExit:这个操作会永远阻塞
尝试在 Python 中使用 select.select 来监视 /proc/ 下的某些内容。最初,它抛出
r,w,x = select.select([],[],[fd])
AttributeError: 'function' object has no attribute 'select'
由于我们使用的是gevents,所以用这个来摆脱上面的错误:
from gevent import monkey,select
monkey.patch_all()
现在,我面临另一个错误,我似乎没有使用 gevent 不喜欢的任何东西(就像我们应该使用 gevent.sleep 而不是 sleep)。这是代码:
from gevent import monkey,select
monkey.patch_all()
file_dp = open("/proc/<>")
while True:
r,[fd])
file_dp.seek(0)
print(file_dp.read())
这里是错误:
Traceback (most recent call last):
File "read.py",line 8,in <module>
read,write,exc = select.select([],[fd])
File "/usr/lib64/python2.9/site-packages/gevent/select.py",line 69,in select
result.event.wait(timeout=timeout)
File "/usr/lib64/python2.9/site-packages/gevent/event.py",line 77,in wait
result = self.hub.switch()
File "/usr/lib64/python2.9/site-packages/gevent/hub.py",line 331,in switch
return greenlet.switch(self)
gevent.hub.LoopExit: This operation would block forever
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。