¿No puedes usar Python select.poll en Mac OS?

$ python Python 2.7.5 (default, Aug 25 2013, 00:04:04) [GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import select >>> select.poll Traceback (most recent call last): File "", line 1, in  AttributeError: 'module' object has no attribute 'poll' 

En lugar de usar la encuesta, use select.kqueue () en OSX. Es similar a ‘epoll’ en Linux en el sentido de que puede registrarse de manera más eficiente para los tipos de eventos de descriptores de archivos / sistemas de archivos que pueden usarse en código asíncrono. Mucho más eficiente que las encuestas.

De lo contrario, el equivalente es ejecutar un select.select () de locking dentro de un tiempo True: loop con algún tipo de tiempo de espera?

Si desea usar la encuesta para no reescribir un montón de código para kqueue, está integrado en el python comstackdo desde macports (macports.org). Solo debe especificar esa instancia de python explícitamente (/opt/local/bin/python2.7 en mi caso) porque python de OSX (/ usr / bin / python) estará por defecto en la ruta de búsqueda.

Es interesante que, para futuras referencias, solo surja un subconjunto limitado de las versiones de python.

 user@hostname:~/ws/engine$ python Python 2.7.9 (v2.7.9:648dcafa7e5f, Dec 10 2014, 10:10:46) [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import select >>> select.poll()  >>> exit() user@hostname:~/ws/engine$ python --version Python 2.7.9 user@hostname:~/ws/engine$ workon py_2_7_10 (py_2_7_10) user@hostname:~/ws/engine$ python Python 2.7.10 (default, Oct 23 2015, 19:19:21) [GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.5)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import select >>> select.poll() Traceback (most recent call last): File "", line 1, in  AttributeError: 'module' object has no attribute 'poll' >>> ~/ws/engine$ uname -a Darwin hostname 15.4.0 Darwin Kernel Version 15.4.0: Fri Feb 26 22:08:05 PST 2016; root:xnu-3248.40.184~3/RELEASE_X86_64 x86_64