如何在PyCharm中启用远程芹菜调试?

Rya*_*yan 24 debugging celery pycharm

我试图找到一些关于如何在远程机器上的芹菜进程中启用PyCharm调试的说明.远程机器正在运行Ubuntu 14.04.

我正在运行PyCharm 4.x.

我已经看到一些其他信息暗示其他人有它工作,但无法找到任何正确的指示.

nor*_*tpy 29

您可以Run Configuration运行您的celery工作人员,然后只需单击debug按钮即可进行调试.以下是我在PyCharm 5中设置的方法:

pycharm芹菜

您需要设置一个远程python解释器,然后设置其他配置,如上图所示.请注意,Working directory它指向已安装bin的远程解释器的文件夹celery.


Ass*_*sem 12

对于Windows,使用 Celery >= 4.0 进行测试

添加一个“ Python ”类型的新(运行/调试)配置:

然后,在配置选项卡下:将第一个选项(Target to run)从“脚本路径”切换到“模块名称”并填写值:

celery.bin.celery
Run Code Online (Sandbox Code Playgroud)

像下面的快照:

在此处输入图片说明

  • 我必须使用模块名称“celery”,而不是“celery.bin.celery” (6认同)
  • 谢谢,我发现必须添加`-P alone` (2认同)

Var*_*har 7

只需添加以下配置:

from celery import current_app
current_app.conf.CELERY_ALWAYS_EAGER = True
current_app.conf.CELERY_EAGER_PROPAGATES_EXCEPTIONS = True
Run Code Online (Sandbox Code Playgroud)

这样做会使celery在与当前正在执行的线程相同的线程中执行.


Hen*_*ger 6

不幸的是,大多数解决方案不适用于Windows.(有一个单独的问题专门针对这个问题,但遗憾的是它已被关闭作为这个问题的副本.所以我现在在这里回答这个问题.)

问题是在Windows上,独立的celery命令是批处理文件,因此PyCharm无法将Python调试器附加到它.

直到Celery 3.x,您可以创建manage.py运行配置并celery worker在其上调用命令.

用于运行manage.py芹菜工人的PyCharm运行配置的屏幕截图

请注意,您无需在--app此处设置,因为应用程序由管理命令via定义DJANGO_SETTINGS_MODULE.

不幸的是,celery管理命令是django-celery库的一个功能,Celery 4.x不支持它.到目前为止,我还没有找到Celery 4.x的解决方案.