Tenía un código de trabajo que ejecutaba el matraz con gunicorn (trabajador de eventos) en la ventana acoplable. También funciona en producción, pero en mi máquina comenzó a hacer esto. No puedo encontrar nada en google sobre esta cosa. ¿Cuál podría ser el problema?
Error: class uri 'eventlet' invalid or not found: web_1 | web_1 | [Traceback (most recent call last): web_1 | File "/root/.local/lib/python3.7/site-packages/gunicorn/util.py", line 99, in load_class web_1 | mod = importlib.import_module('.'.join(components)) web_1 | File "/usr/local/lib/python3.7/importlib/__init__.py", line 127, in import_module web_1 | return _bootstrap._gcd_import(name[level:], package, level) web_1 | File "<frozen importlib._bootstrap>", line 1006, in _gcd_import web_1 | File "<frozen importlib._bootstrap>", line 983, in _find_and_load web_1 | File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked web_1 | File "<frozen importlib._bootstrap>", line 677, in _load_unlocked web_1 | File "<frozen importlib._bootstrap_external>", line 728, in exec_module web_1 | File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed web_1 | File "/root/.local/lib/python3.7/site-packages/gunicorn/workers/geventlet.py", line 20, in <module> web_1 | from eventlet.wsgi import ALREADY_HANDLED as EVENTLET_ALREADY_HANDLED web_1 | ImportError: cannot import name 'ALREADY_HANDLED' from 'eventlet.wsgi' (/root/.local/lib/python3.7/site-packages/eventlet/wsgi.py) web_1 | ]La instalación de una versión anterior de eventlet resolvió el problema: pip install eventlet==0.30.2
EDITAR:
puede usar las versiones más nuevas como esta: pip install eventlet==0.33.0 https://github.com/benoitc/gunicorn/archive/refs/heads/master.zip#egg=gunicorn==20.1.0
ver: https://github.com/benoitc/gunicorn/pull/2581#issuecomment-994198667
gracias @jmunsch
Parece que hubo un cambio recientemente en eventlet
Consulte este PR para ver un parche de ejemplo y una posible versión de lanzamiento: https://github.com/benoitc/gunicorn/pull/2581
Eventlet 0.30.3+ eliminó wsgi.ALREADY_HANDLED rompiendo la API pública en solo un aumento de la versión del parche. Lo siento.
Problema con YA_MANEJADO: eventlet/eventlet#543 Solución con WSGI_LOCAL: eventlet/eventlet#544
Se recomienda usar eventlet>=0.31.0 si se usan websockets, porque las versiones anteriores son vulnerables a ataques DoS. GHSA-9p9m-jm8w-94p2
CI falló en las comprobaciones de pylint en las líneas que no toqué.