Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python芹菜没有名为app.tasks的模块_Python_Linux_Celery - Fatal编程技术网

python芹菜没有名为app.tasks的模块

python芹菜没有名为app.tasks的模块,python,linux,celery,Python,Linux,Celery,我正在尝试从芹菜运行演示应用程序 项目目录是/usr/local/proj [root@merit1 proj]# ls -lh total 16K -rw-r--r--. 1 root root 363 Dec 23 00:36 celery.py -rw-r--r--. 1 root root 522 Dec 23 00:36 celery.pyc -rw-r--r--. 1 root root 0 Dec 23 00:22 __init__.py -rw-r--r--. 1 root

我正在尝试从芹菜运行演示应用程序

项目目录是/usr/local/proj

[root@merit1 proj]# ls -lh
total 16K
-rw-r--r--. 1 root root 363 Dec 23 00:36 celery.py
-rw-r--r--. 1 root root 522 Dec 23 00:36 celery.pyc
-rw-r--r--. 1 root root   0 Dec 23 00:22 __init__.py
-rw-r--r--. 1 root root 114 Dec 23 00:36 __init__.pyc
-rw-r--r--. 1 root root 211 Dec 23 00:37 tasks.py
还有芹菜

from __future__ import absolute_import

from celery import Celery

app = Celery('proj',
             broker='amqp://guest@localhost//',
             backend='amqp://',
             include=['app.tasks'])

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

if __name__ == '__main__':
    app.start()
和tasks.py包含

from __future__ import absolute_import

from proj.celery import app


@app.task
def add(x, y):
    return x + y


@app.task
def mul(x, y):
    return x * y


@app.task
def xsum(numbers):
    return sum(numbers)
然而,当我从/usr/local运行芹菜时,我得到了这个错误

celery worker --app=proj -l info
Traceback (most recent call last):
  File "/usr/bin/celery", line 9, in <module>
    load_entry_point('celery==3.1.7', 'console_scripts', 'celery')()
  File "/usr/lib/python2.6/site-packages/celery-3.1.7-py2.6.egg/celery/__main__.py", line 30, in main
    main()
  File "/usr/lib/python2.6/site-packages/celery-3.1.7-py2.6.egg/celery/bin/celery.py", line 80, in main
    cmd.execute_from_commandline(argv)
  File "/usr/lib/python2.6/site-packages/celery-3.1.7-py2.6.egg/celery/bin/celery.py", line 723, in execute_from_commandline
    super(CeleryCommand, self).execute_from_commandline(argv)))
  File "/usr/lib/python2.6/site-packages/celery-3.1.7-py2.6.egg/celery/bin/base.py", line 303, in execute_from_commandline
    return self.handle_argv(self.prog_name, argv[1:])
  File "/usr/lib/python2.6/site-packages/celery-3.1.7-py2.6.egg/celery/bin/celery.py", line 715, in handle_argv
    return self.execute(command, argv)
  File "/usr/lib/python2.6/site-packages/celery-3.1.7-py2.6.egg/celery/bin/celery.py", line 669, in execute
    ).run_from_argv(self.prog_name, argv[1:], command=argv[0])
  File "/usr/lib/python2.6/site-packages/celery-3.1.7-py2.6.egg/celery/bin/worker.py", line 175, in run_from_argv
    return self(*args, **options)
  File "/usr/lib/python2.6/site-packages/celery-3.1.7-py2.6.egg/celery/bin/base.py", line 266, in __call__
    ret = self.run(*args, **kwargs)
  File "/usr/lib/python2.6/site-packages/celery-3.1.7-py2.6.egg/celery/bin/worker.py", line 208, in run
    state_db=self.node_format(state_db, hostname), **kwargs
  File "/usr/lib/python2.6/site-packages/celery-3.1.7-py2.6.egg/celery/worker/__init__.py", line 95, in __init__
    self.app.loader.init_worker()
  File "/usr/lib/python2.6/site-packages/celery-3.1.7-py2.6.egg/celery/loaders/base.py", line 128, in init_worker
    self.import_default_modules()
  File "/usr/lib/python2.6/site-packages/celery-3.1.7-py2.6.egg/celery/loaders/base.py", line 121, in import_default_modules
    tuple(maybe_list(self.app.conf.CELERY_INCLUDE))
  File "/usr/lib/python2.6/site-packages/celery-3.1.7-py2.6.egg/celery/loaders/base.py", line 103, in import_task_module
    return self.import_from_cwd(module)
  File "/usr/lib/python2.6/site-packages/celery-3.1.7-py2.6.egg/celery/loaders/base.py", line 112, in import_from_cwd
    package=package,
  File "/usr/lib/python2.6/site-packages/celery-3.1.7-py2.6.egg/celery/utils/imports.py", line 101, in import_from_cwd
    return imp(module, package=package)
  File "/usr/lib64/python2.6/contextlib.py", line 34, in __exit__
    self.gen.throw(type, value, traceback)
  File "/usr/lib/python2.6/site-packages/celery-3.1.7-py2.6.egg/celery/utils/imports.py", line 64, in cwd_in_path
    yield cwd
  File "/usr/lib/python2.6/site-packages/celery-3.1.7-py2.6.egg/celery/utils/imports.py", line 101, in import_from_cwd
    return imp(module, package=package)
  File "/usr/lib/python2.6/site-packages/celery-3.1.7-py2.6.egg/celery/loaders/base.py", line 106, in import_module
    return importlib.import_module(module, package=package)
  File "/usr/lib/python2.6/site-packages/importlib-1.0.2-py2.6.egg/importlib/__init__.py", line 37, in import_module
    __import__(name)
ImportError: No module named app.tasks
我现在得到这个错误

[root@merit1 local]# celery worker --app=proj -l info
Traceback (most recent call last):
  File "/usr/bin/celery", line 9, in <module>
    load_entry_point('celery==3.1.7', 'console_scripts', 'celery')()
  File "/usr/lib/python2.6/site-packages/celery-3.1.7-py2.6.egg/celery/__main__.py", line 30, in main
    main()
  File "/usr/lib/python2.6/site-packages/celery-3.1.7-py2.6.egg/celery/bin/celery.py", line 80, in main
    cmd.execute_from_commandline(argv)
  File "/usr/lib/python2.6/site-packages/celery-3.1.7-py2.6.egg/celery/bin/celery.py", line 723, in execute_from_commandline
    super(CeleryCommand, self).execute_from_commandline(argv)))
  File "/usr/lib/python2.6/site-packages/celery-3.1.7-py2.6.egg/celery/bin/base.py", line 303, in execute_from_commandline
    return self.handle_argv(self.prog_name, argv[1:])
  File "/usr/lib/python2.6/site-packages/celery-3.1.7-py2.6.egg/celery/bin/celery.py", line 715, in handle_argv
    return self.execute(command, argv)
  File "/usr/lib/python2.6/site-packages/celery-3.1.7-py2.6.egg/celery/bin/celery.py", line 669, in execute
    ).run_from_argv(self.prog_name, argv[1:], command=argv[0])
  File "/usr/lib/python2.6/site-packages/celery-3.1.7-py2.6.egg/celery/bin/worker.py", line 175, in run_from_argv
    return self(*args, **options)
  File "/usr/lib/python2.6/site-packages/celery-3.1.7-py2.6.egg/celery/bin/base.py", line 266, in __call__
    ret = self.run(*args, **kwargs)
  File "/usr/lib/python2.6/site-packages/celery-3.1.7-py2.6.egg/celery/bin/worker.py", line 208, in run
    state_db=self.node_format(state_db, hostname), **kwargs
  File "/usr/lib/python2.6/site-packages/celery-3.1.7-py2.6.egg/celery/worker/__init__.py", line 95, in __init__
    self.app.loader.init_worker()
  File "/usr/lib/python2.6/site-packages/celery-3.1.7-py2.6.egg/celery/loaders/base.py", line 128, in init_worker
    self.import_default_modules()
  File "/usr/lib/python2.6/site-packages/celery-3.1.7-py2.6.egg/celery/loaders/base.py", line 121, in import_default_modules
    tuple(maybe_list(self.app.conf.CELERY_INCLUDE))
  File "/usr/lib/python2.6/site-packages/celery-3.1.7-py2.6.egg/celery/loaders/base.py", line 103, in import_task_module
    return self.import_from_cwd(module)
  File "/usr/lib/python2.6/site-packages/celery-3.1.7-py2.6.egg/celery/loaders/base.py", line 112, in import_from_cwd
    package=package,
  File "/usr/lib/python2.6/site-packages/celery-3.1.7-py2.6.egg/celery/utils/imports.py", line 101, in import_from_cwd
    return imp(module, package=package)
  File "/usr/lib64/python2.6/contextlib.py", line 34, in __exit__
    self.gen.throw(type, value, traceback)
  File "/usr/lib/python2.6/site-packages/celery-3.1.7-py2.6.egg/celery/utils/imports.py", line 64, in cwd_in_path
    yield cwd
  File "/usr/lib/python2.6/site-packages/celery-3.1.7-py2.6.egg/celery/utils/imports.py", line 101, in import_from_cwd
    return imp(module, package=package)
  File "/usr/lib/python2.6/site-packages/celery-3.1.7-py2.6.egg/celery/loaders/base.py", line 106, in import_module
    return importlib.import_module(module, package=package)
  File "/usr/lib/python2.6/site-packages/importlib-1.0.2-py2.6.egg/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/usr/local/proj/tasks.py", line 8, in <module>
    @app.task
TypeError: 'module' object is not callable
[root@merit1本地]#芹菜工人--app=proj-l信息
回溯(最近一次呼叫最后一次):
文件“/usr/bin/芹菜”,第9行,在
加载入口点(“芹菜==3.1.7”,“控制台脚本”,“芹菜”)()
文件“/usr/lib/python2.6/site packages/cellery-3.1.7-py2.6.egg/cellery/__main__.py”,第30行,在main中
main()
文件“/usr/lib/python2.6/site packages/cellery-3.1.7-py2.6.egg/cellery/bin/cellery.py”,第80行,主文件
cmd.从命令行(argv)执行命令
文件“/usr/lib/python2.6/site packages/cellery-3.1.7-py2.6.egg/cellery/bin/cellery.py”,第723行,从命令行执行
超级(CeleryCommand,self)。从命令行(argv)执行命令)
文件“/usr/lib/python2.6/site packages/cellery-3.1.7-py2.6.egg/cellery/bin/base.py”,第303行,执行命令行
返回self.handle_argv(self.prog_名称,argv[1:])
文件“/usr/lib/python2.6/site packages/cellery-3.1.7-py2.6.egg/cellery/bin/cellery.py”,第715行,在handle_argv中
返回self.execute(命令,argv)
文件“/usr/lib/python2.6/site packages/cellery-3.1.7-py2.6.egg/cellery/bin/cellery.py”,第669行,执行
).run_from_argv(self.prog_name,argv[1:],command=argv[0])
文件“/usr/lib/python2.6/site packages/cellery-3.1.7-py2.6.egg/cellery/bin/worker.py”,第175行,运行中来自
返回自我(*参数,**选项)
文件“/usr/lib/python2.6/site packages/cellery-3.1.7-py2.6.egg/cellery/bin/base.py”,第266行,在调用中__
ret=self.run(*args,**kwargs)
文件“/usr/lib/python2.6/site packages/cellery-3.1.7-py2.6.egg/cellery/bin/worker.py”,第208行,运行中
state\u db=self.node\u格式(state\u db,主机名),**kwargs
文件“/usr/lib/python2.6/site packages/cellery-3.1.7-py2.6.egg/cellery/worker/_init__.py”,第95行,in__init__
self.app.loader.init_worker()
文件“/usr/lib/python2.6/site packages/cellery-3.1.7-py2.6.egg/cellery/loaders/base.py”,第128行,在init_中
self.import\u默认\u模块()
文件“/usr/lib/python2.6/site packages/cellery-3.1.7-py2.6.egg/cellery/loaders/base.py”,第121行,在导入默认模块中
元组(可能是列表(self.app.conf.芹菜)
文件“/usr/lib/python2.6/site packages/cellery-3.1.7-py2.6.egg/cellery/loaders/base.py”,第103行,在导入任务模块中
返回self.import\u from\u cwd(模块)
文件“/usr/lib/python2.6/site packages/cellery-3.1.7-py2.6.egg/cellery/loaders/base.py”,第112行,从cwd导入
包装=包装,
文件“/usr/lib/python2.6/site packages/cellery-3.1.7-py2.6.egg/cellery/utils/imports.py”,第101行,从cwd导入
返回imp(模块,包=包)
文件“/usr/lib64/python2.6/contextlib.py”,第34行,在__
self.gen.throw(类型、值、回溯)
文件“/usr/lib/python2.6/site packages/celery-3.1.7-py2.6.egg/celery/utils/imports.py”,第64行,位于cwd_in_路径中
产量cwd
文件“/usr/lib/python2.6/site packages/cellery-3.1.7-py2.6.egg/cellery/utils/imports.py”,第101行,从cwd导入
返回imp(模块,包=包)
文件“/usr/lib/python2.6/site packages/cellery-3.1.7-py2.6.egg/cellery/loaders/base.py”,第106行,在导入模块中
返回importlib.import\u模块(模块,包=包)
导入模块第37行的文件“/usr/lib/python2.6/site packages/importlib-1.0.2-py2.6.egg/importlib/_init__.py”
__导入(名称)
文件“/usr/local/proj/tasks.py”,第8行,在
@应用程序任务
TypeError:“模块”对象不可调用

将您的包含更改为:

app = Celery('proj',
         broker='amqp://guest@localhost//',
         backend='amqp://',
         include=['proj.tasks'])

include–每个工作人员应导入的模块列表


从tasks.py中取出第一行,从未来导入绝对导入中删除

app = Celery('proj',
         broker='amqp://guest@localhost//',
         backend='amqp://',
         include=['proj.tasks'])