我正在使用 PyCharm,并注意到当我将调试器附加到 celery 工作进程时,我的任务没有完成,并且此错误记录到控制台:
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named pydevd
调用 celery 任务时也会记录此消息:
[2013-03-24 05:24:26,336: INFO/MainProcess] Got task from broker: celery.group[91218981-204a-414c-a674-fcd8e2b22d23]
但是,此任务从未真正完成。
这是用于将 PyCharm 中的 pydevd 调试器附加到我的 celery 工作进程的实际命令:
/home/scottc/venv/myproj/bin/python home/scottc/.IntelliJIdea12/config/plugins/python/helpers/pydev/pydevd.py --multiproc --client 127.0.0.1 --port 60283 --file manage.py celeryd -E -B --loglevel=INFO
当我在 PyCharm 中简单地运行进程而不附加调试器时,永远不会显示 ImportError 消息并且我的任务确实完成了。
最后,我知道在我的路径中找到了 pydevd,因为我可以在我的代码中手动输入以下内容:
from pydev import pydevd
pydevd.settrace('my_host', port=5643, stdoutToServer=True, stderrToServer=True)
并且调试器将成功附加。然而,问题是,这远不如在 PyCharm 中设置一些断点并单击“调试”方便。