python中的多处理池

2024-06-06 18:35:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样的代码,当我在交互模式下使用python时可以使用,但是当我将它另存为示例.py试着运行它是行不通的。为什么?你知道吗

import numpy as np
from multiprocessing import Pool

def wrap(args):
        sc=np.zeros(2)
        n=args[0]
        r0=args[1]
        rf=args[2]
        sc[0]=1. #other complicated funcion not important here
        sc[1]=2. #other complicated funcion not important here
        return sc

def Scp(n,photozname,zbin):
        phi=np.genfromtxt(photozname)
        x=phi[phi[:,0]>(zbin*0.5),0]
        y=phi[phi[:,0]>(zbin*0.5),1]
        N=len(x)
        args = [(n,x[i],y[i]) for i in range(N)]
        if __name__ == "__main__":
                pool = Pool(processes=80)
                out=pool.map(wrap,args)
                pool.terminate()
        sc=np.array(out)
        s3c=np.sum(sc[:,0]*y)
        s4c=np.sum(sc[:,1]*y)
        return s3c,s4c

s3c,s4c=Scp(n,file,zbin)

Tags: importdefnpargsotherscpoolphi