如何在 python 中捕获 Joblib/Parallel 异常?

How to catch Joblib/Parallel Exceptions in python?

我有 joblibParallel, delayed 的用例。我已经包含了一些在特定条件下终止工作人员的功能。但是,当我这样做时,我会随机生成 JoblibWebdriverExceptionMultiprocessing exceptionJoblibURLerrorerror.

令我非常高兴的是,我没有在 docs.

中找到任何关于如何(定义?)/捕获异常的部分

当我这样做时:

    try:
       Parallel(delayed(function))
    except (JoblibWebdriverException | error | 'Multiprocessing exception'): 
    # written with separate excepts in original code
       log_errors()

我得到 name JoblibWebdriverException not defined 然后是:

---------
Sub-process traceback
---------
Multiprocessing exception:
(trace stack)

如何在 python 中使用 Parallel 时捕获未定义的 joblib 异常?

我建议使用 concurrent.Futures,它对异常处理有强大的支持。 joblib 由于设置多处理的方式而无法从子进程向主线程引发异常而臭名昭著。