问题
测试gunicorn不同work下的性能时候,在eventlet 方式下报错误
Error: class uri 'eventlet' invalid or not found:
[Traceback (most recent call last):
File "/app/venv/lib64/python3.6/site-packages/gunicorn/util.py", line 99, in load_class
mod = importlib.import_module('.'.join(components))
File "/usr/lib64/python3.6/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 678, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/xxxx/python3.6/site-packages/gunicorn/workers/geventlet.py", line 20, in <module>
from eventlet.wsgi import ALREADY_HANDLED as EVENTLET_ALREADY_HANDLED
ImportError: cannot import name 'ALREADY_HANDLED'
解决办法
安装eventlet的时候不要用
pip install eventlet
这样一般会安装最新的版本
网上搜索一圈,发现是gunicorn和eventlet的版本匹配问题
如果gunicorn版本是19.9或者20.1
使用 eventlet的版本要是0.30.2
pip install eventlet==0.30.2