Python 我能';不要用芹菜
我有以下文件夹:Python 我能';不要用芹菜,python,python-3.x,celery,Python,Python 3.x,Celery,我有以下文件夹: proj ├── __init__.py ├── celery.py ├── tasks.py ├── foo_launcher.py 首先,我必须启动芹菜工人 celery -A proj worker -l info celery.py代码: from __future__ import absolute_import, unicode_literals from celery import Celery app = Celery('project', bro
proj
├── __init__.py
├── celery.py
├── tasks.py
├── foo_launcher.py
首先,我必须启动芹菜工人
celery -A proj worker -l info
celery.py代码:
from __future__ import absolute_import, unicode_literals
from celery import Celery
app = Celery('project', broker='amqp://guest@localhost//', include=['project.tasks'])
if __name__ == '__main__':
app.start()
芹菜工人工作得很好,但是当我要启动foo_launcher.py
时,我不能使用这些任务,因为foo_launcher.py
依赖于tasks.py
和tasks.py
依赖于芹菜.py
。问题就在这里。我需要导入芹菜.py文件而不是芹菜库
这就是tasks.py
from .celery import app #Here Import celery.py not celery library
@app.task
def add(x, y):
return x + y
from tasks import add
result = add.apply_async((2,2), queue='lopri',coutdown=10)
print(result)
这里是foo_launcher.py
from .celery import app #Here Import celery.py not celery library
@app.task
def add(x, y):
return x + y
from tasks import add
result = add.apply_async((2,2), queue='lopri',coutdown=10)
print(result)
所有这些都很有意义,但当我尝试启动foo_launcher.py
:
python foo_launcher.py
它向我启动以下错误:
Traceback (most recent call last):
File ".\foo_launcher.py", line 1, in <module>
from tasks import add
File "C:\Users\beca4\Desktop\proj\tasks.py", line 1, in <module>
from .celery import app
ImportError: attempted relative import with no known parent package
回溯(最近一次呼叫最后一次):
文件“\foo\u launcher.py”,第1行,在
从任务导入添加
文件“C:\Users\beca4\Desktop\proj\tasks.py”,第1行,在
来自。芹菜导入应用程序
ImportError:尝试在没有已知父包的情况下进行相对导入
我不知道我能做什么。有什么想法吗?
芹菜。py
与芹菜
模块同名
您最好更改
芹菜.py
的文件名,例如,mq.py
确保您有\uuuu init\uuuuuuuuuuuuuupy
文件
from .celery import app #Here Import celery.py not celery library
@app.task
def add(x, y):
return x + y
from tasks import add
result = add.apply_async((2,2), queue='lopri',coutdown=10)
print(result)
然后从上面的一个目录中导入python.exe并导入tasks/foo_午餐器.py-
cd ..
python
>> import projectdirectory.tasks
- projectdirectory是包含
文件的目录\uuuu init\uuuu.py