私はCelery(Django)で最初のステップを実行し、バックグラウンドで重いプロセスを実行しようとしました。 RabbitMQサーバーをインストールしています。しかし、私が試してみると、celery -A my_app worker -l info
次のエラーをスローします
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 678, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "c:\anaconda3\lib\site-packages\celery\concurrency\prefork.py", line
18, in <module>
from celery.concurrency.base import BasePool
File "c:\anaconda3\lib\site-packages\celery\concurrency\base.py", line 15,
in <module>
from celery.utils import timer2
File "c:\anaconda3\lib\site-packages\celery\utils\timer2.py", line 16, in
<module>
from kombu.asynchronous.timer import Entry
ModuleNotFoundError: No module named 'kombu.asynchronous.timer'
たくさん検索しましたが、うまくいかないようです。どんな助けでも大歓迎です。ありがとうございました!
同じ問題がありますが、バージョン3.1.25でセロリを再インストールすると解決しました
pip uninstall celery && pip install celery==3.1.25
Windowsがセロリ4で公式にサポートされていないためか、 https://github.com/celery/celery/issues/3551
TL; DR: virtualenvのルートからkombuディレクトリを削除します(存在する場合)。 Windowsでのみ失敗する可能性があります。
癖のようです。同じエラーを見つけて、何が起こっているのかを調べました。
Pipがダウンロードするホイールパッケージは問題ないように見えます(kombu.asynchronous.timerが含まれています)。最後のバージョン(現在は4.2.0)のリリースも問題ありません。奇妙なのは、virtualenvのインストールで見つけたものです。
Virtualenvルートにライブラリのコンテンツを含むkombuディレクトリが見つかりましたが、「非同期」ディレクトリの横に「async」ディレクトリもあります。 asyncにはtimer.pyファイルがありますが、非同期にはないため、これらのディレクトリは4.2.0リリースのものではありません。
どこから来たの?ホイールのデータディレクトリからのようです。
そこで、解決策:virtualenvのルートからkombuディレクトリを削除すると、celeryが機能しました。
Pip(3.1.26Post2)からのデフォルトのCeleryインストールでこの問題が発生しました。上記のように、代わりにバージョン3.1.25をインストールしましたが、Celeryはまだ機能していませんでした。したがって、最新バージョンを明示的にインストールしました。
pip install Celery == 4.3
そして今、すべてが機能しています!
私はあなたが持っているのと同じpythonバージョンでセロリをテストしました、そしてそれは大丈夫です。そしてまた https://github.com/celery/kombu/blob/master/kombu/asynchronous/ timer.py は、ランダムに名前を変更しても効果がないことを示しています。pip uninstall kombu && pip --no-cache-dir install -U kombu
を試してkombu
の新規インストールを実行する必要があります。インストールに問題があるはずです。 。したがって、kombu
再インストールが機能しなかった場合は、すべてを再インストールしてみてください。
セロリから始めました。指示に従い、Celery v4.2.0をインストールしました
コマンドを実行しようとしたとき:celery -A mysite worker -l info
エラーが発生しました:
ModuleNotFoundError: No module named 'kombu.asynchronous.timer
セロリのインストールを削除しました:pip uninstall celery
その後、「chuhy」推奨としてCelery3.1.25をインストールしました
しかし..他にも問題があったので、すぐに3.1.25をアンインストールし、celeryv4.2.0を再インストールしました。
このシナリオの後、エラーは再び発生しませんでした。
私はWindowsで作業しているので、これに少し問題がありました。しかし、私の解決策は、python 3.6.8で新しいcondaenvを作成することでした(セロリはpython 3.7で動作する可能性があることを理解していますが、多くの問題があります)。次に、最新バージョンのcelery(4.3.0)とDjango(2.2.3)のインストールに進みます。その後、すべてが正常に機能しました。