芹菜中的错误:"ModuleNotFoundError: No module named 'tasks'"



当我运行批处理文件以启用Celery:时

python.exe -m celery -A tasks worker.celery -P eventlet -f celery.logs -l info 

出现错误:

Traceback(最后一次调用):
文件"C:\Users\Chernov.a\Desktop\Projects\Roscosmos \Python36-32\lib\runpy.py",第193行,在_run_module_as_main中">main",mod_spec)
文件"C:\Users\Chernov.a\Desktop\Projects\Roscosmos \Python36-32\lib\runpy.py",第85行,在_run_code中exec(代码,run_globals)
文件"C:\Users\Chernov.a\Desktop\Projects\Roscosmos \Python36-32\lib\site-packages\celery_main__.py",第18行,位于main()
文件"C:\Users\Chernov.a\Desktop\Projects\Roscosmos \Python36-32\lib\site-packages\celery_main__.py",第14行_main()
文件"C:\Users\Chernov.a\Desktop\Projects\Roscosmos\Python36-32\lib\site-packages\celeb\bin\cceleb.py",第326行cmd.execute_from_commandline(argv)
文件"C:\Users\Chernov.a\Desktop\Projects\Roscosmo\Python36-32\lib\site-packages\celeb\bin\cceleb.py",第488行,在execute_from_commandline中
super(CeleryCommand,self).execute_from_commendline(argv))
文件"C:\Users\Chernov.a\Desktop\Projects\Roscosmo\Python36-32\lib\site-packages\celeb\bin\base.py",第279行,在execute_from_commandline中
argv=self.setup_app_from_commandline(argv)
文件"C:\Users\Chernov.a\Desktop\Projects\Roscosmo\Python36-32\lib\site-packages\celeb\bin\base.py",第481行,在setup_app_from_commandline中
self.app=self.find_app(应用程序)
文件"C:\Users\Chernov.a\Desktop\Projects\Roscosmos \Python36-32\lib\site-packages\celeb\bin\base.py",第503行,在find_app中
返回find_app(app,symbol_by_name=self.symbol_by_name)
文件"C:\Users\Chernov.a\Desktop\Projects\Roscosmo\Python36-32\lib\site-packages\celeb\app\utils.py",第355行,在find_app中
sym=symbol_by_name(应用程序,imp=imp)
文件"C:\Users\Chernov.a\Desktop\Projects\Roscosmos\Python36-32\lib\site-packages\celeb\bin\base.py",第506行,symbol_by_name
return imports.symbol_by_name(name,imp=imp)
文件"C:\Users\Chernov.a\Desktop\Projects\Roscosmo\Python36-32\lib\site-packages\kombu\utils\imports.py",第56行,symbol_by_name
module=imp(模块名称,软件包=软件包,**kwargs)
文件"C:\Users\Chernov.a\Desktop\Projects\Roscosmo\Python36-32\lib\site-packages\celeb\utils\imports.py",第101行,在import_from_cwd中
return imp(模块,包=包)
import_module中的文件"C:\Users\Chernov.a\Desktop\Projects\Roscosmo\Python36-32\lib\importlib__init__.py",第126行
return bootstrap_gcd_import(名称[level:],包,级别)
_gcd_import中的文件",第994行
文件",第971行,在_find_and_load中
文件",第953行,在_find_and_load_unlocked中
ModuleNotFoundError:没有名为"tasks"的模块

我试图将此路径添加到sys.path,更改虚拟环境,但没有任何帮助。

代码本身的任务.py

import requests
from requests.auth import HTTPBasicAuth
from celery import Celery

celery_app = Celery('nsi', broker='amqp://guest@localhost//')

@celery_app.task(
name='sendToNsi',
default_retry_delay = 4 *(60 * 60),
max_retries =  1000,
autoretry_for=(Exception,))
def sendToNsi(NSI_url,answer):
s=requests.Session()
post_request = s.post(NSI_url, data=answer,auth=HTTPBasicAuth('__', '___'))
post_request.raise_for_status()

项目结构

───webNSI
│   1.py
│   config.py
│   config1.py
│   journal.log
│   Message.xsd
│   Schemas.py
│   test2.py
│   views - Copy.py
│   views.py
│   views2.py
│   __init__.py
│
├───model
│   │   Answers.py
│   │   DBOperation.py
│   │   XmlHandler.py
│   │   __init__.py
│   │
│   ├───MQ
│   │   │   celery.logs
│   │   │   CeleryMQ_Task.xml
│   │   │   celery_worker.bat
│   │   │   tasks.py
│   │   │   __init__.py
│   │   │
│   │   └───__pycache__
│   │           tasks.cpython-36.pyc
│   │           __init__.cpython-36.pyc
│   │
│   └───__pycache__
│           Answers.cpython-36.pyc
│           DBOperation.cpython-36.pyc
│           XmlHandler.cpython-36.pyc
│           __init__.cpython-36.pyc
│
└───__pycache__
config.cpython-36.pyc
Schemas.cpython-36.pyc
views.cpython-36.pyc
__init__.cpython-36.pyc
__init__.cpython-37.pyc
───__pycache__
runserver.cpython-36.pyc

我该如何解决这个问题?

也许任务文件在执行路径中不可见。

尝试:

python.exe -m celery worker.celery --app=nsi -P eventlet -f celery.logs -l info 

相关内容

  • 没有找到相关文章

最新更新