以下のエラーは、セロリの労働者を通過した場合にのみ発生することに注意してください。ターミナルで次のコマンドを使用して :セロリのタスクは、プロジェクト内からモジュールのImportErrorをインポートできません。
celery -A MarketPlaceTasks worker --loglevel=info
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/celery/app/trace.py", line 218, in trace_task
R = retval = fun(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/celery/app/trace.py", line 398, in __protected_call__
return self.run(*args, **kwargs)
File "/home/nick/mpcrawler2/MarketPlaceTasks.py", line 65, in get_item_data
logger, request, run_data, store_config, app_config = setup_task(payload)
File "/home/nick/mpcrawler2/MarketPlaceTasks.py", line 33, in setup_task
store_config = ConfigReader.read_store_config(request.Store)
File "/home/nick/mpcrawler2/shared/ConfigReader.py", line 22, in read_store_config
from singletons.StoreData import StoreData
File "/home/nick/mpcrawler2/singletons/StoreData.py", line 3, in <module>
from models.StoreConfig import StoreConfig
File "/home/nick/mpcrawler2/models/StoreConfig.py", line 3, in <module>
from enums.MpStores import MpStore
ImportError: No module named enums.MpStores
私は別のモジュール内のすべての私の列挙型を持っています。モジュールは次のようになり、そしてプロジェクトと同じディレクトリ内に配置されています。私はpycharmまたは端末すべてを経由して、プロジェクトを実行するたびに
意図したとおりに動作しているようです。
労働者の出発点は、次のようになります。
from celery import Celery
app = Celery('tasks', broker='*some ampq address here*')
__init__.py
ファイルが空です。列挙型ファイルは、次のようになります。
from enum import Enum
# noinspection SpellCheckingInspection
class MpStore(Enum):
somevalue = 1
someothervalue = 2
etc = 3
私はピップを使用してインストールされたenum34
を使用していますのPython 2.7を使用していたよう。
私が質問に記入しなければならないことがあれば教えてください。