当我运行批处理文件以启用Celery时:
python.exe -m celery -A tasks worker.celery -P eventlet -f celery.logs -l info
发生错误:
回溯(最近通话最近):
_run_module_as_main中的文件“ C:\ Users \ Chernov.a \ Desktop \ Projects \ Roscosmos \ Python36-32 \ lib \ runpy.py”,第193行 “ 主要”,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行,位于 主要()
文件“ C:\ Users \ Chernov.a \ Desktop \ Projects \ Roscosmos \ Python36-32 \ lib \ site-packages \ celery__main __。py”,主行中的第14行 _主要()
文件“ C:\ Users \ Chernov.a \ Desktop \ Projects \ Roscosmos \ Python36-32 \ lib \ site-packages \ celery \ bin \ celery.py”,主行326行 cmd.execute_from_commandline(argv)
在execute_from_commandline中的第488行中的文件“ C:\ Users \ Chernov.a \ Desktop \ Projects \ Roscosmos \ Python36-32 \ lib \ site-packages \ celery \ bin \ celery.py”
超级(CeleryCommand,self).execute_from_commandline(argv)))
文件“ C:\ Users \ Chernov.a \ Desktop \ Projects \ Roscosmos \ Python36-32 \ lib \ site-packages \ celery \ bin \ base.py”,行279,在execute_from_commandline中
argv = self.setup_app_from_commandline(argv)
文件“ C:\ Users \ Chernov.a \ Desktop \ Projects \ Roscosmos \ Python36-32 \ lib \ site-packages \ celery \ bin \ base.py”,行481,在setup_app_from_commandline中
self.app = self.find_app(app)
在find_app中的文件“ C:\ Users \ Chernov.a \ Desktop \ Projects \ Roscosmos \ Python36-32 \ lib \ site-packages \ celery \ bin \ base.py”,第503行
返回find_app(应用程序,symbol_by_name = self.symbol_by_name)
在find_app中,文件“ C:\ Users \ Chernov.a \ Desktop \ Projects \ Roscosmos \ Python36-32 \ lib \ site-packages \ celery \ app \ utils.py”,第355行
sym = symbol_by_name(应用程序,imp = imp)
文件“ C:\ Users \ Chernov.a \ Desktop \ Projects \ Roscosmos \ Python36-32 \ lib \ site-packages \ celery \ bin \ base.py”,第506行,在symbol_by_name中
返回imports.symbol_by_name(名称,imp = imp)
文件“ C:\ Users \ Chernov.a \ Desktop \ Projects \ Roscosmos \ Python36-32 \ lib \ site-packages \ kombu \ utils \ imports.py”,第56行,在symbol_by_name中
module = imp(module_name,package = package,** kwarg)
文件“ C:\ Users \ Chernov.a \ Desktop \ Projects \ Roscosmos \ Python36-32 \ lib \ site-packages \ celery \ utils \ imports.py”,第101行,位于import_from_cwd中
返回imp(模块,包装=包装)
文件import_module中的第126行“ C:\ Users \ Chernov.a \ Desktop \ Projects \ Roscosmos \ Python36-32 \ lib \ importlib__init __。py”
返回_bootstrap._gcd_import(名称[level:],软件包,级别)
_gcd_import中的文件“”,第994行
“ find_and_load”中第971行的文件“”
“ find_and_load_unlocked”中第953行的文件“”
ModuleNotFoundError:没有名为“任务”的模块
我试图将此路径添加到sys.path中,更改了虚拟环境,但没有任何帮助。
代码本身为task.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
我该如何解决这个问题?
答案 0 :(得分:0)
也许在您执行任务的路径中看不到任务文件。
尝试:
python.exe -m celery worker.celery --app=nsi -P eventlet -f celery.logs -l info