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

Django每日自动处理Wordle分数需求及Celery安装故障求助

解决方案:自动化处理未完成Wordle用户分数 + 解决django-celery安装失败问题

问题背景

我搭建了Wordle高尔夫网站,供好友玩Wordle并每日追踪分数,网站设有排行榜。需要实现每日午夜自动检查用户当日Wordle完成字段,若为空则写入对应分数数据。网站部署在Heroku,希望找易用工具,此前安装django-celery失败,报错信息如下:

(wordleenv) kyleflannelly@MacBook-Pro-5 wordlegolfing % pip install django-celery 
Collecting django-celery
  Using cached django_celery-3.3.1-py3-none-any.whl (63 kB)
Collecting celery<4.0,>=3.1.15
  Using cached celery-3.1.26.post2-py2.py3-none-any.whl (526 kB)
Requirement already satisfied: django>=1.8 in /Users/kyleflannelly/Dev/environments/wordleenv/lib/python3.10/site-packages (from django-celery) (4.1)
Requirement already satisfied: pytz>dev in /Users/kyleflannelly/Dev/environments/wordleenv/lib/python3.10/site-packages (from celery<4.0,>=3.1.15->django-celery) (2022.2.1)
Collecting kombu<3.1,>=3.0.37
  Using cached kombu-3.0.37-py2.py3-none-any.whl (240 kB)
Collecting billiard<3.4,>=3.3.0.23
  Using cached billiard-3.3.0.23.tar.gz (151 kB)
  Preparing metadata (setup.py) ... done
Requirement already satisfied: asgiref<4,>=3.5.2 in /Users/kyleflannelly/Dev/environments/wordleenv/lib/python3.10/site-packages (from django>=1.8->django-celery) (3.5.2)
Requirement already satisfied: sqlparse>=0.2.2 in /Users/kyleflannelly/Dev/environments/wordleenv/lib/python3.10/site-packages (from django>=1.8->django-celery) (0.4.2)
Collecting amqp<2.0,>=1.4.9
  Using cached amqp-1.4.9-py2.py3-none-any.whl (51 kB)
Collecting anyjson>=0.3.3
  Using cached anyjson-0.3.3.tar.gz (8.3 kB)
  Preparing metadata (setup.py) ... error
  error: subprocess-exited-with-error
  
  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [1 lines of output]
      error in anyjson setup command: use_2to3 is invalid.
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.

一、推荐的易用定时任务工具(Heroku环境)

1. Heroku Scheduler(首选)

完全适配Heroku的原生工具,零额外依赖,操作极简:

  • 进入Heroku应用的「Resources」页面,搜索添加「Heroku Scheduler」插件
  • 点击「Add Job」,设置执行频率为「Daily」,时间选午夜(注意UTC时区转换)
  • 在命令框输入触发任务的命令,比如python manage.py update_unfinished_scores(需先编写Django管理命令处理未完成用户分数)
  • 保存任务即可自动执行

2. 原生Celery(替代django-celery)

django-celery已过时,现在Celery原生支持Django,步骤如下:

  • 安装最新版Celery:pip install celery
  • 按照Celery官方文档配置Django集成,设置Beat定时任务
  • Heroku上添加Redis/RabbitMQ作为消息代理(比如Heroku Redis插件)
  • 通过Procfile配置启动Celery Beat和Worker进程

3. APScheduler(轻量备选)

轻量级定时任务库,无需消息代理:

  • 安装APScheduler:pip install apscheduler
  • 在Django项目中编写定时函数,配置每日午夜执行
  • 通过Procfile启动APScheduler调度器进程,确保后台运行

二、解决django-celery安装失败的方法

安装失败原因是django-celery依赖的旧版celery需要anyjson,而anyjson使用了Python 3.10废弃的use_2to3选项。临时解决可尝试:

pip install anyjson==0.3.3 --use-pep517
pip install django-celery

但更建议直接使用原生Celery,避免依赖过时包的兼容性问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 03:35:28