如果出现以下问题
>>> celery -A amp worker --loglevel=info -c 3 -P gevent
Traceback (most recent call last):
File "/usr/bin/celery", line 27, in <module>
load_entry_point("celery", "console_scripts", "celery")()
File "/home/zxy/anaconda3/lib/python3.9/site-packages/pkg_resources/__init__.py", line 485, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/home/zxy/anaconda3/lib/python3.9/site-packages/pkg_resources/__init__.py", line 477, in get_distribution
dist = get_provider(dist)
File "/home/zxy/anaconda3/lib/python3.9/site-packages/pkg_resources/__init__.py", line 353, in get_provider
return working_set.find(moduleOrReq) or require(str(moduleOrReq))[0]
File "/home/zxy/anaconda3/lib/python3.9/site-packages/pkg_resources/__init__.py", line 897, in require
needed = self.resolve(parse_requirements(requirements))
File "/home/zxy/anaconda3/lib/python3.9/site-packages/pkg_resources/__init__.py", line 783, in resolve
raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'celery' distribution was not found and is required by the application
首先,将/usr/bin/celery里python的编译器改一下(但大概率不会成功)
sudo vi /usr/bin/celery
#!/home/zxy/anaconda3/env/amp/bin/python
确认celery已经安装之后,输入
celery worker --help
如果出现以下报错
Traceback (most recent call last):
File "/home/zxy/anaconda3/envs/amp/bin/celery", line 8, in <module>
sys.exit(main())
File "/home/zxy/anaconda3/envs/amp/lib/python3.7/site-packages/celery/__main__.py", line 14, in main
from celery.bin.celery import main as _main
File "/home/zxy/anaconda3/envs/amp/lib/python3.7/site-packages/celery/bin/celery.py", line 14, in <module>
from celery.app.utils import find_app
File "/home/zxy/anaconda3/envs/amp/lib/python3.7/site-packages/celery/app/__init__.py", line 2, in <module>
from celery import _state
File "/home/zxy/anaconda3/envs/amp/lib/python3.7/site-packages/celery/_state.py", line 15, in <module>
from celery.utils.threads import LocalStack
File "/home/zxy/anaconda3/envs/amp/lib/python3.7/site-packages/celery/utils/__init__.py", line 16, in <module>
from .nodenames import nodename, nodesplit, worker_direct
File "/home/zxy/anaconda3/envs/amp/lib/python3.7/site-packages/celery/utils/nodenames.py", line 6, in <module>
from kombu.entity import Exchange, Queue
File "/home/zxy/anaconda3/envs/amp/lib/python3.7/site-packages/kombu/entity.py", line 7, in <module>
from .serialization import prepare_accept_content
File "/home/zxy/anaconda3/envs/amp/lib/python3.7/site-packages/kombu/serialization.py", line 440, in <module>
for ep, args in entrypoints('kombu.serializers'): # pragma: no cover
File "/home/zxy/anaconda3/envs/amp/lib/python3.7/site-packages/kombu/utils/compat.py", line 82, in entrypoints
for ep in importlib_metadata.entry_points().get(namespace, [])
AttributeError: 'EntryPoints' object has no attribute 'get'
尝试硬性更改importlib-metadata
!pip install importlib-metadata==4.13.0
再次输入celery worker --help应该就没问题了