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

Debugging 如何在PyCharm中启用远程芹菜调试?,debugging,celery,pycharm,Debugging,Celery,Pycharm,我试图找到一些关于如何在远程机器上的芹菜进程中启用PyCharm调试的说明。远程计算机正在运行Ubuntu 14.04 我正在运行PyCharm 4.x 我看到一些其他信息暗示其他人可以使用它,但无法找到任何正确的说明。您可以使用运行配置来运行芹菜工作程序,然后只需单击调试按钮即可进行调试。以下是我在PyCharm 5中如何设置的: 您需要设置一个远程python解释器,然后设置其他配置,如上图所示。请注意,工作目录指向安装了芹菜的远程解释器的bin文件夹。只需添加以下配置: from cel

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

我正在运行PyCharm 4.x


我看到一些其他信息暗示其他人可以使用它,但无法找到任何正确的说明。

您可以使用
运行配置来运行
芹菜
工作程序,然后只需单击
调试
按钮即可进行调试。以下是我在PyCharm 5中如何设置的:


您需要设置一个远程python解释器,然后设置其他配置,如上图所示。请注意,
工作目录
指向安装了
芹菜的远程解释器的
bin
文件夹。

只需添加以下配置:

from celery import current_app
current_app.conf.CELERY_ALWAYS_EAGER = True
current_app.conf.CELERY_EAGER_PROPAGATES_EXCEPTIONS = True

这样做会使芹菜与当前执行的线程在同一个线程中执行。

我的工作配置:

  • 脚本:
    /home/app/env/bin/芹菜
  • 脚本参数:
    worker-B-n qrc-Q qrc-l info--app=backend.芹菜

    • 其中
      -B
      表示芹菜甜菜,
      -n
      是节点名,
      -Q
      是队列名称,
      -l
      是日志级别,并且
      --app
      是应用程序名,在我的例子中是一个django应用程序,在settings.py旁边有芹菜.py
  • 工作目录:
    /home/app/server/
    ie my django根文件夹


不幸的是,大多数解决方案在Windows上不起作用。(有一个特别的问题,但不幸的是它作为这个问题的副本关闭了。所以我现在在这里回答这个问题。)

问题是,在Windows上,standalone芹菜命令是一个批处理文件,因此PyCharm无法将Python调试器附加到它

在Celery 3.x之前,您可以创建一个
manage.py
运行配置,并在其上调用
Celery worker
命令

请注意,此处不需要设置
--app
,因为应用程序是由管理命令通过
DJANGO\u SETTINGS\u模块定义的


不幸的是,
芹菜
管理命令是
django芹菜
库的一项功能,芹菜4.x不支持该功能。到目前为止,我还没有找到芹菜4.x的解决方案。

我正在使用PyCharm 2017,必须做一些与上述答案非常类似的事情,但我特别必须在“脚本”字段中输入芹菜的完整/绝对路径名

另外,我不确定PyCharm 4是否具有此功能,但较新版本允许您通过运行>附加到本地进程来直接附加到正在运行的python进程


这允许您以之前的方式运行芹菜(可能在终端中),然后允许Pycharm接管Windows中的调试配置,在Pycharm中添加以下参数

-A YouAppName worker  --loglevel=debug -P solo --without-gossip --without-mingle --without-heartbeat

如果您使用Gevent for Cellery,请不要忘记选中
Preferences>Build、Execution、Deployment>Python Debugger>Gevent Compatible
复选框。

对于Windows,在中使用Cellery>=4.0进行测试

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

然后,在“配置”选项卡下: 将第一个选项(要运行的目标)从“脚本路径”切换到“模块名称”,并填写以下值:

celery.bin.celery
如下面的快照所示:


谢谢,我在找这个!谢谢,我发现必须添加
-P solo
以节省生命。这个解决方案在pycharm 2020 pro编辑版中对我很有效:我想workdir是我遗漏的东西。我必须在IntelliJ 2021.1中输入芹菜
可执行文件的完整路径。