使用Python的multiprocessing.Pool时,是否只能显示一次警告?
说明问题的简单示例
import multiprocessing
import warnings
def func_with_warning(data):
warnings.warn("Warning message {}".format(data))
if __name__ == '__main__':
data = [0, 1, 2]
pool = multiprocessing.Pool(2)
pool.map(func_with_warning, data)
结果:
>> /home/user/script.py:10: UserWarning: Warning message 0
warnings.warn("Warning message {}".format(data))
/home/user/script.py:10: UserWarning: Warning message 1
warnings.warn("Warning message {}".format(data))
/home/user/script.py:10: UserWarning: Warning message 2
warnings.warn("Warning message {}".format(data))
>>
我知道每个产生的进程就像一个独立的Python世界,但是也许有人知道在这种情况下仅显示一次警告的任何技巧吗?
有人建议它与问题重复:Python 3: Catching warnings during multiprocessing。我认为: