导入python包的混淆

时间:2013-03-07 20:16:39

标签: python python-import

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

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

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尝试那些命令时;它没有给出任何错误。 有什么东西我不见了吗?

1 个答案:

答案 0 :(得分:1)

  

当我从python shell尝试这些命令时;它没有给出任何错误。有什么东西我不见了吗?

我真的推荐它, RENAME 你的文件就像所有人都说的那样,但你可以试试

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

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

导入时
from .celery import my_func