使用多处理池时的 Pycharm 调试器

问题描述

这个设置出现了我的问题:

  • Pycharm 2020.3 专业版
  • multiprocessing.Pool
  • Macbook pro 2020 (M1)
  • 康达蟒蛇 3.8

最重要的是,当我使用 pycharm 的调试器时会发生这种情况。

它在控制台中显示了 8 次(进程数):
Error loading: /Applications/PyCharm.app/Contents/plugins/python/helpers/pydev/pydevd_attach_to_process/attach_x86_64.dylib

每个进程都被执行。结果是正确的。我可以用 htop 命令看到它们。所以这只是调试器故障,并不会真正影响代码执行(如果我错了,请纠正我)。

这是我运行的代码

def func(x):
    return x+10


if __name__ == '__main__':
    poo = Pool()
    x = [[i] for i in range(10)]
    res = poo.starmap(func,x)
    print(res)

我现在可以忽略控制台中的大量打印,但这并不方便。如果有人想摆脱这些……

解决方法

这听起来像是 JetBrains 开发人员需要为 M1 解决的问题(考虑 dropping them a bug report)。同时,我怀疑您可以在选项下禁用它:

PyCharm > 首选项 > 构建、执行、部署 > Python 调试器

并取消选中“调试时自动附加到子进程”框。请参阅 the pertinent docs 以供参考。