Windows环境下Locust 2.15.1需按Ctrl-C才启动的问题求助
问题:Locust 2.15.1在Windows启动无响应,需按CTRL-C才能正常运行
我通过pip安装了locust==2.15.1,运行在Windows环境中。执行locust.exe后无任何反应,按下一次CTRL-C后,会出现如下堆栈跟踪信息,之后Locust就能正常运行:
locust.exe <CTRL-C> Exception in thread loguru-writer-2: Traceback (most recent call last): File "C:\Users\xxx\AppData\Local\Programs\Python\Python39\lib\threading.py", line 973, in _bootstrap_inner self.run() File "C:\Users\xxx\AppData\Local\Programs\Python\Python39\lib\threading.py", line 910, in run self._target(*self._args, **self._kwargs) File "C:\Users\xxx\venvs\myenv\lib\site-packages\loguru\_handler.py", line 270, in _queued_writer message = queue.get() File "C:\Users\xxx\AppData\Local\Programs\Python\Python39\lib\multiprocessing\queues.py", line 366, in get res = self._reader.recv_bytes() File "C:\Users\xxx\AppData\Local\Programs\Python\Python39\lib\multiprocessing\connection.py", line 221, in recv_bytes buf = self._recv_bytes(maxlength) File "C:\Users\xxx\AppData\Local\Programs\Python\Python39\lib\multiprocessing\connection.py", line 310, in _recv_bytes waitres = _winapi.WaitForMultipleObjects( KeyboardInterrupt [2023-05-31 13:52:25,102] computer/INFO/locust.main: Starting web interface at http://0.0.0.0:8089 (accepting connections from all network interfaces) [2023-05-31 13:52:25,116] computer/INFO/locust.main: Starting Locust 2.15.1
解决思路
- 调整Loguru版本:报错源于Loguru的队列写入线程阻塞,尝试安装
loguru==0.6.0或最新稳定版,修复与Python3.9+Windows多进程队列的兼容性问题 - 改用
python -m locust启动:跳过虚拟环境的locust.exe包装,直接通过Python模块方式启动,避免进程启动时的阻塞 - 切换Python版本:尝试升级到Python3.10/3.11,旧版本Python在Windows的多进程通信可能存在未修复的bug
- 禁用Loguru队列日志:自定义Locust日志配置,使用标准库logging替代Loguru的异步队列机制,避免线程阻塞
- 检查安全软件:临时关闭Windows防火墙或杀毒软件,确认是否是安全软件拦截了Locust的进程通信导致启动阻塞
内容的提问来源于stack exchange,提问作者HeyMan
相关产品推荐
相关产品推荐

