是否有任何解释器适用于在Windows 7上运行python 2.7版本的多处理?

时间:2016-08-05 14:05:17

标签: python windows-7 multiprocessing command-prompt interpreter

我试图运行一段代码。这段代码都是关于多处理的。它在命令提示符下工作正常,它也会产生一些输出。但是当我尝试在pyscripter上运行这段代码时,它只是说脚本运行正常并且它不会生成任何输出,甚至它也不会显示任何错误信息。它甚至不会崩溃。如果有人能帮助我找到一个正确的解释器,这个多处理工作正常,那将会非常有用。 这是一段代码:

    from multiprocessing import Process
    def wait():
        print "wait"
        clean()
   def clean():
        print "clean"
   def main():
        p=Process(target=wait)
        p.start()
        p.join()
   if _name_=='_main_':
        main()

1 个答案:

答案 0 :(得分:0)

对于我来说,普通的解释器在Windows 7上与multiprocessing的工作正常。 (您的IDE可能不喜欢多处理。)

你必须要做

if __name__=='__main__':
    main()

每个下划线(__)代替1(_)。

此外 - 如果您没有实际理由不使用它,multiprocessing.Pool在大多数情况下比multiprocessing.Process更容易使用。已经https://docs.python.org/2/library/multiprocessing.html#module-multiprocessing.pool

使用Pool的实现将是

import multiprocessing
def wait():
    print "wait"
    clean()
def clean():
    print "clean"
def main():
    p=multiprocessing.Pool()
    p.apply_async(wait)
    p.close()
    p.join()
if __name__=='__main__':
    main()

但使用哪种方法强烈依赖于你真正想要做的事情。