控制 Dask LocalCluster 打印到控制台

问题描述 投票:0回答:1

我确信有一个简单的解决方案,但是我有一个 python 函数,它在运行时打印一些值,但是,我也想使用 dask 运行它,但我不想打印这些工作人员直接连接到我的控制台。

下面是我的代码的一个简单示例:

def dask_function(i):
    print('Ignore me!')
    return i**2

cluster = LocalCluster(12, processes=True)
client = Client(cluster)

dask_delays = []
for i in range(10):
    dask_delays.append(dask.delayed(dask_function)(i))

dask_outs = client.compute(dask_delays)

当我运行这个程序时,我得到 10 个“忽略我!”打印到控制台。有没有办法防止 Dask 工作人员的打印出现在控制台中?

python parallel-processing dask
1个回答
0
投票

不,我认为 LocalCluster 不支持重定向 stdout/stderr。您可以使用

subprocess
或命令行启动您的工作人员并从那里重定向。

另一种可能性是在设置时使用 worker 插件 重新分配 sys.stdout (指向 /dev/null、某些文件或任何类似文件的对象)。

© www.soinside.com 2019 - 2024. All rights reserved.