【发布时间】:2016-01-17 16:17:25
【问题描述】:
我正在尝试在 python 中使用并行计算包 joblib。我可以执行下面的例子并得到结果
Parallel(n_jobs=8)(delayed(sqrt)(i) for i in range(10))
但是,下面的代码行不通。
from joblib import Parallel, delayed
def f(x):
return 1
def y(x):
result=Parallel(n_jobs=8)(delayed(x)(i) for i in range(10))
return result
if __name__ == '__main__':
print y(f)
当我运行上述代码时,它会一直运行而不会产生任何结果或消息。
谁能找出这种奇怪行为的原因(我正在使用 Windows)?谢谢
【问题讨论】:
-
我可以通过将它们放在
if __name__ == '__main__'块中来成功执行您的两个语句 -
@lambo477,不适合我,我已经修改了我的帖子。
-
您的代码现在可以在我的 Windows 环境 Python
2.7.9中完美运行 -
@lambo477,这太奇怪了!我的笔记本和台式机都不能执行自定义函数
f
标签: python parallel-processing joblib