python多处理不断生成整个脚本



我在组织脚本以使用多处理时遇到问题。进程似乎是派生出来的,但它一次又一次地执行整个脚本。在本例中,它将持续print("PREPARATION")。我想我的问题在于剧本的组织。

import subprocess as sp
import multiprocessing

def func1():
blah
blah
blah
def func2():
blah
blah
blah
def derev_work(cmd):
proc = sp.run(cmd)
print(proc.stdout)
def main():
print("PREPARATION")
cmd_list = [[path_to_exe, arg1, arg2, arg3] for sheet in sortedsheets]
if __name__=="__main__":
print (multiprocessing.cpu_count())
pool = multiprocessing.Pool(multiprocessing.cpu_count())
results = []
r = pool.map_async(derev_work, cmd_list , callback=results.append)
r.wait()
print(results)
print("COMPLETION")
main()

您需要使用

if __name__ == "__main__":
main()

成语。

它在多处理文档中解释得非常清楚:

相反,应该使用if __name__ == '__main__':来保护程序的"入口点",如下所示。。。

相关内容

  • 没有找到相关文章

最新更新