2

enter code here我有一个包名 celery 和一个文件名 celery。

当我说导入芹菜时,它试图导入芹菜文件而不是芹菜包。它说它无法导入芹菜

from __future__ import absolute_import
from celery import Celery


celery = Celery('celery_app',
                broker='redis://localhost:6379/0',
                backend='amqp://',
                include=['celery_app.tasks'])

# Optional configuration, see the application user guide.
celery.conf.update(
    CELERY_TASK_RESULT_EXPIRES=3600,
)

if __name__ == '__main__':
    celery.start()

如下所示。有没有办法解释导入包而不是文件。

编辑:

试过了

from __future__ import absolute_import
import sys
del sys.path[0]
from celery import Celery

但还是一样。当我从 python shell 尝试这些命令时;它没有给出任何错误。有什么我想念的吗?

4

1 回答 1

1

当我从 python shell 尝试这些命令时;它没有给出任何错误。有什么我想念的吗?

我真的推荐它,像每个人所说的那样重命名你的文件,但你可以尝试

import sys, os
[sys.path.remove(i) for i in sys.path if i == os.getcwd() or i == '']
from celery import Celery

此外,您正在导入absolute_import但您似乎没有使用它(文档)。从本地文件导入时celery.py

from .celery import my_func
于 2013-03-07T21:02:15.657 回答