我正在使用joblib
来并行化我的Python 3.5代码。
如果我执行以下操作:
from modules import f
from joblib import Parallel, delayed
if __name__ == '__main__':
Parallel( n_jobs = n_jobs,backend = "multiprocessing")(delayed(f)(i) for i in range( 10 ))
代码无法运行。相反应该这样处理:
from joblib import Parallel, delayed
def f( i ):
# my func ...
if __name__ == '__main__':
Parallel( n_jobs = n_jobs, backend = "multiprocessing")(delayed(f)(i) for i in range(10))
这个有效!
有人能解释一下为什么我必须把所有的函数都放在同一个脚本中吗?
这真的很不实用,因为在模块中有许多我编写的函数,我不想将它们复制/粘贴到主脚本中。