# for gevent >= 1.0
hub = gevent.get_hub()
watcher = hub.loop.io(fd, 1) # 1 = READ, 2 = WRITE, 3 = READ|WRITE
hub.wait(watcher)
# fd is now ready for reading
Однако было бы лучше выяснить, как использовать для этого gevent-zeromq или расширить его для поддержки вашего варианта использования.