我确信有一个简单的解决方案,但是我有一个 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 工作人员的打印出现在控制台中?
不,我认为 LocalCluster 不支持重定向 stdout/stderr。您可以使用
subprocess
或命令行启动您的工作人员并从那里重定向。
另一种可能性是在设置时使用 worker 插件 重新分配 sys.stdout (指向 /dev/null、某些文件或任何类似文件的对象)。