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

Celery 5.3.4在Debian11容器启动beat报backports模块缺失错误

Celery 5.3.4启动Beat时提示backports模块缺失

环境详情

  • 主机系统:Debian 11
  • 容器内Python版本:3.10.13-bullseye
  • Celery版本:5.3.4
  • Docker部署环境:Debian 11 主机、Windows10(Docker Desktop)

容器内pip与Python版本验证

root@5b45db7349aa:/app# pip3 --version
pip 23.3.1 from /usr/local/lib/python3.10/site-packages/pip (python 3.10)
root@5b45db7349aa:/app# python --version
Python 3.10.13

错误信息

执行命令 celery -A app beat -l INFO 时触发如下错误:

root@5b45db7349aa:/app# celery -A app beat -l info
celery beat v5.3.4 (emerald-rush) is starting.
__    -    ... __   -        _
LocalTime -> 2023-11-03 10:48:13
Configuration ->
    . broker -> redis://redis:6379/0
    . loader -> celery.loaders.app.AppLoader
    . scheduler -> celery.beat.PersistentScheduler
    . db -> celerybeat-schedule
    . logfile -> [stderr]@%DEBUG
    . maxinterval -> 5.00 minutes (300s)
[2023-11-03 10:48:13,939: DEBUG/MainProcess] Setting default socket timeout to 30
[2023-11-03 10:48:13,940: INFO/MainProcess] beat: Starting...
[2023-11-03 10:48:13,945: CRITICAL/MainProcess] beat raised exception <class 'ModuleNotFoundError'>: ModuleNotFoundError("No module named 'backports'")
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/shelve.py", line 111, in __getitem__
    value = self.cache[key]
KeyError: 'entries'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/celery/apps/beat.py", line 113, in start_scheduler
    service.start()
  File "/usr/local/lib/python3.10/site-packages/celery/beat.py", line 634, in start
    humanize_seconds(self.scheduler.max_interval))
  File "/usr/local/lib/python3.10/site-packages/kombu/utils/objects.py", line 31, in __get__
    return super().__get__(instance, owner)
  File "/usr/local/lib/python3.10/functools.py", line 981, in __get__
    val = self.func(instance)
  File "/usr/local/lib/python3.10/site-packages/celery/beat.py", line 677, in scheduler
    return self.get_scheduler()
  File "/usr/local/lib/python3.10/site-packages/celery/beat.py", line 668, in get_scheduler
    return symbol_by_name(self.scheduler_cls, aliases=aliases)(
  File "/usr/local/lib/python3.10/site-packages/celery/beat.py", line 513, in __init__
    super().__init__(*args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/celery/beat.py", line 264, in __init__
    self.setup_schedule()
  File "/usr/local/lib/python3.10/site-packages/celery/beat.py", line 541, in setup_schedule
    self._create_schedule()
  File "/usr/local/lib/python3.10/site-packages/celery/beat.py", line 570, in _create_schedule
    self._store['entries']
  File "/usr/local/lib/python3.10/shelve.py", line 114, in __getitem__
    value = Unpickler(f).load()
ModuleNotFoundError: No module named 'backports'

补充信息

  • 同一容器在Windows10的Docker Desktop环境下运行无异常
  • 已确认Debian 11主机上的容器内pip、Python、Celery版本与Windows环境完全一致

Dockerfile内容

FROM python:3.10.13-slim-bullseye

 # 让Python直接输出到控制台,不做消息缓冲
 ENV PYTHONUNBUFFERED 1

 # 由Docker Compose传入,开发环境下设为true
 ARG DEV=false
 # 创建环境并升级pip
 RUN apt-get update
 RUN apt-get install -y gcc python3-dev build-essential curl nano

 RUN apt-get install -y postgresql-client libjpeg-dev libpq-dev 

 # 下载微软SQL Server驱动相关包
 RUN curl https://packages.microsoft.com/keys/microsoft.asc |  tee /etc/apt/trusted.gpg.d/microsoft.asc
 RUN curl https://packages.microsoft.com/config/debian/11/prod.list | tee /etc/apt/sources.list.d/mssql-release.list
 RUN apt-get update
 RUN ACCEPT_EULA=Y apt-get install -y msodbcsql17
 # 可选:安装unixODBC开发头文件
 RUN apt-get install -y unixodbc-dev
 # 可选:为debian-slim安装kerberos库
 RUN apt-get install -y libgssapi-krb5-2


 RUN mv /etc/localtime /etc/localtime.old
 RUN ln -s /usr/share/zoneinfo/Europe/Rome /etc/localtime

 # 本地化设置(已注释)
 #RUN echo "it_IT.UTF-8 UTF-8" >> /etc/locale.gen
 #RUN locale-gen

 COPY ./requirements.txt /tmp/requirements.txt
 COPY ./requirements.dev.txt /tmp/requirements.dev.txt
 RUN pip install --no-cache-dir -r /tmp/requirements.txt

 COPY ./compose/celery/celery_worker_start.sh /celery_worker_start.sh
 RUN sed -i 's/\r$//g' /celery_worker_start.sh
 RUN chmod +x /celery_worker_start.sh

 COPY ./compose/celery/celery_beat_start.sh /celery_beat_start.sh
 RUN sed -i 's/\r$//g' /celery_beat_start.sh
 RUN chmod +x /celery_beat_start.sh

 COPY ./compose/celery/celery_flower_start.sh /celery_flower_start.sh
 RUN sed -i 's/\r$//g' /celery_flower_start.sh
 RUN chmod +x /celery_flower_start.sh

 RUN mkdir /app
 WORKDIR /app
 EXPOSE 8000
 # 以django用户身份运行容器(未启用)
 #CMD ["run.sh"]

系统内核信息

容器内

Linux 3865cf0f97ec 4.19.0-25-amd64 #1 SMP Debian 4.19.289-2 (2023-08-08) x86_64 GNU/Linux

主机

Linux VSRVDEB01 4.19.0-25-amd64 #1 SMP Debian 4.19.289-2 (2023-08-08) x86_64 GNU/Linux

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 10:44:50