gpt4 book ai didi

python - 从 celery 导入 current_app 是 ValueError : attempted relative import beyond top-level package

转载 作者:太空宇宙 更新时间:2023-11-03 23:56:29 24 4
gpt4 key购买 nike

是的,我知道有很多关于与这个值错误相关的堆栈溢出的类似问题,我尝试了他们的所有解决方案,但由于我是 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

Sibling package imports

Relative imports for the billionth time

How to do relative imports in Python?

Attempted relative imports beyond top-level package?

最佳答案

您的错误可能与 celery.current_app 有点不包含在您的 PYTHONPATH 中有关。确保满足这两项:

  1. 确保 celery.current_app 包安装在您的 PYTHONPATH 下。
  2. 如果您使用的是虚拟环境,请确保安装了 celery 并激活了您的虚拟环境。

关于python - 从 celery 导入 current_app 是 ValueError : attempted relative import beyond top-level package,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57551983/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com