微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python进口和芹菜工人

如何解决Python进口和芹菜工人

我具有以下目录结构:

.
└── package
    ├── foo
    │   ├── __init__.py
    │   └── foo.py
    ├── run.py
    └── tasks.py

foo / foo.py

class Foo:
    @staticmethod
    def double(x):
        return 2 * x

run.py

from package.foo.foo import Foo

def do_bar(x):
    return x + 10

if __name__ == '__main__':
    foo = Foo()
    r1 = foo.double(10)
    r2 = do_bar(5)
    print(r1 + r2)

tasks.py

from celery import Celery

from package.foo.foo import Foo
from package.run import do_bar

celapp = Celery('foo',broker='amqp://guest@localhost//')


@celapp.task
def run():
    foo = Foo()
    foo.double(10) + do_bar(5)

当我用$ celery -A tasks worker运行芹菜时,它会给我:

Error: 
Unable to load celery application.
The module package was not found.

如果我只在tasks.py

from .foo.foo import Foo
from .run import do_bar

我得到ImportError: attempted relative import with no kNown parent package

我认为我的导入是错误的,但我无法理解Python如何处理导入。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。