You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask+Redis任务队列问题:RQ Worker执行前退出报错

问题排查与解决:RQ Worker 报 module os has no attribute 'fork' 错误

核心原因

这个错误本质是RQ Worker 运行在 Windows 原生 Python 环境中,而非 WSL 的 Python 环境。Windows 原生 Python 的os模块没有fork()方法(这是 Unix/Linux 系统专属特性),你虽在 WSL bash 界面操作,但 VS Code 终端可能未正确关联到 WSL 内的 Python 环境,从而触发该异常。

解决步骤

1. 验证终端使用的 Python 环境

在启动 RQ Worker 的 VS Code 终端中执行以下命令,确认路径归属:

which python3

正常输出应为 WSL 内的路径(如/usr/bin/python3),而非 Windows 路径(如/mnt/c/Users/xxx/AppData/Local/Programs/Python/Python3x/python.exe)。

2. 切换到 WSL 专属 Python 环境

  • 若未安装 VS Code 的 Remote - WSL 扩展,先安装后通过左下角远程连接按钮选择 WSL 重新打开项目;
  • 若使用了虚拟环境,在 WSL bash 中手动激活:
source 你的虚拟环境路径/bin/activate

3. 重启 RQ Worker

确认环境正确后,重新启动 Worker:

rq worker microblog-tasks

4. 重新执行任务代码

确保提交任务的 Python Shell 同样使用 WSL 环境,再运行代码:

from redis import Redis
import rq
queue = rq.Queue('microblog-tasks', connection=Redis.from_url('redis://'))
job = queue.enqueue('app.tasks.example', 23)
print(job.get_id())

额外检查点

  • Redis 服务已正常运行(从你提供的systemctl status redis输出可确认),默认连接地址redis://与服务地址一致,无需修改;
  • 确保 Worker 和任务提交使用的是同一虚拟环境,避免依赖版本不一致引发其他问题。

内容的提问来源于stack exchange,提问作者edu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 12:32:57