AttributeError:“Logger”对象没有属性“warn”

问题描述 投票:0回答:1

我正在尝试通过 docker 将 celery 连接到我的 django 项目。 但是当启动工作容器时,我收到以下错误 -

File "/usr/local/lib/python3.13/site-packages/kombu/transport/redis.py", line 92, in <module>
 crit, warn = logger.critical, logger.warn
                               ^^^^^^^^^^^
 AttributeError: 'Logger' object has no attribute 'warn'

我的requirements.txt文件:

Django==4.2.7
psycopg==3.1.13
celery[redis]==5.3.6
django-celery-beat==2.5.0
redis==5.0.1

我的dockerfile:

FROM python:3.13.0a1-alpine3.18

ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1

COPY requirements /temp/requirements
RUN apk add postgresql-client build-base postgresql-dev
RUN pip install -r /temp/requirements/local.txt

WORKDIR /myproject

COPY . .

EXPOSE 8000

我的docker-compose.yml:

 redis:
    image: redis:7.2.3-alpine3.18
    ports:
      - '6379:6379'
    restart: always

  worker:
    build:
      context: .
    command: >
      sh -c "celery -A config worker -l INFO"
    restart: always
    depends_on:
      - redis

我的项目结构:

src文件夹包含应用程序。

我试图解决这个问题,但失败了。 请告诉我问题可能是什么以及如何解决。 谢谢!

django docker docker-compose celery django-celery
1个回答
0
投票

感谢[@erny][1]我能够解决这个问题。 [1]:https://stackoverflow.com/users/308351/erny

问题是在 python 3.13 中 logger.warn 被删除了。

因此,为了在编写答案时一切都能正常工作,请使用 3.13 及以下版本的 python(不包括在内)

© www.soinside.com 2019 - 2024. All rights reserved.