【发布时间】:2019-12-24 09:25:21
【问题描述】:
是的,我知道堆栈溢出有很多与此值错误相关的类似问题,我尝试了所有解决方案,但由于我是 Django 和 python 新手,我无法解决此问题。
我有一个名为 my_backend 的项目,其文件结构如下。
main_project/
cmb_backend/
__init__.py
celery.py
urls.py
second_app/
__init__.py
moduleZ.py
my_env/
bin/
include/
lib/
python 3.7/
site-packages/
celery/
django_celery_beat
admin.py
我已将 celery 用于周期性任务,因此我在主应用程序 my_backend 中添加了一个 celery.py 文件。
我还使用 pip 安装了 django_celery_beat,在其中,他们使用以下代码导入了 celery。
# admin.py file in the django_celery_beat lib
from celery import current_app
from celery.utils import cached_property
所以当我运行这个命令时
python3 my_backend/setup_database.py
它给了我一个类似的错误
ImportError: cannot import name 'current_app' from 'celery' (/Users/pankaj/Desktop/Pankaj/MyJangoProjects/My_Project/my_backend/celery.py)
所以从这个错误中,我发现当我在上面运行命令 admin.py 时正在从 celery 导入 current_app 但它正在查找错误的文件
所以为了解决这个错误,我使用相对导入并在导入语句前添加 .. 但仍然无法正常工作
# admin.py file in the django_celery_beat lib
from ..celery import current_app
from ..celery.utils import cached_property
现在我收到ValueError: attempted relative import beyond top-level package
我尝试了一些 sys.path hack,但我的错,我仍然被困在这里。
我还检查了所有这些问题并尝试了那里提供的解决方案。
beyond top level package error in relative import
Relative imports for the billionth time
【问题讨论】:
标签: python django celery django-celery celerybeat