Django 项目 celery 和 django-filter 导致错误

我有一个工作的 django 项目,但在我将 django-filter 添加到我的需求文件后,我开始遇到芹菜错误。


我正在使用 python 3.7,这里是已安装包的列表 w/ 版本:


Django-3.0.7

amqp-2.6.0

asgiref-3.2.7

billiard-3.6.3.0

celery-4.4.4

certifi-2020.4.5.1

chardet-3.0.4

django-bootstrap3-12.1.0

django-celery-results-1.2.1

django-filter-2.2.0

djangorestframework-3.11.0

idna-2.9 importlib-metadata-1.6.0

kombu-4.6.10

ovirt-engine-sdk-python-4.4.3

psycopg2-2.8.5

pycurl-7.43.0.5

python-gitlab-2.2.0

pytz-2020.1

redis-3.5.3

requests-2.23.0

six-1.15.0

sqlparse-0.3.1

urllib3-1.25.9

vine-1.3.0

zipp-3.1.0

我决定删除我使用过滤的代码,只保留 pip 安装包,但我仍然看到相同的错误。下面是一个相关的片段,但如有必要,我可以添加整个跟踪。


celery-beat_1  | [2020-06-04 18:11:33,145: CRITICAL/MainProcess] beat raised exception <class 'ModuleNotFoundError'>: ModuleNotFoundError("No module named 'future'")

celery-beat_1  | Traceback (most recent call last):

celery-beat_1  |   File "/usr/local/lib/python3.7/site-packages/kombu/utils/objects.py", line 42, in __get__

celery-beat_1  |     return obj.__dict__[self.__name__]

celery-beat_1  | KeyError: 'scheduler'

celery-beat_1  | 

celery-beat_1  | During handling of the above exception, another exception occurred:

celery-beat_1  | 

celery-beat_1  | Traceback (most recent call last):

celery-beat_1  |   File "/usr/local/lib/python3.7/site-packages/kombu/utils/objects.py", line 42, in __get__

celery-beat_1  |     return obj.__dict__[self.__name__]

celery-beat_1  | KeyError: 'backend'

.

.

.

celery-beat_1  | [2020-06-04 18:11:33,161: WARNING/MainProcess] File "/usr/local/lib/python3.7/site-packages/celery/backends/base.py", line 10, in <module>

celery-beat_1  | [2020-06-04 18:11:33,161: WARNING/MainProcess] from future.utils import raise_with_traceback

celery-beat_1  | [2020-06-04 18:11:33,161: WARNING/MainProcess] ModuleNotFoundError

celery-beat_1  | [2020-06-04 18:11:33,161: WARNING/MainProcess] :

celery-beat_1  | [2020-06-04 18:11:33,161: WARNING/MainProcess] No module named 'future'

该项目是使用 docker compose 构建的,用于设置 celery/redis/db/webapp。


关于为什么 django-filter 破坏一切的任何想法?


繁星点点滴滴
浏览 129回答 1
1回答

慕莱坞森

如果您使用 pipenv 或类似的包管理器之类的工具安装包,那么它们将升级所有过时的包,除非您告诉他们不要这样做。在这种情况下,celery 已升级到 4.4.4,并且您在 celery 中遇到了一个相当令人尴尬的错误(老实说......那是如何通过 CI 的?),但至少可以轻松修复安装未来的模块。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python