鍍金池/ 問答/Python  網(wǎng)絡安全/ [初學] python 為什么多進程在IDLE不執(zhí)行,命令行執(zhí)行

[初學] python 為什么多進程在IDLE不執(zhí)行,命令行執(zhí)行

按照教程寫的代碼:

from multiprocessing import Process
import os, time

def run_proc(name):
    print('Run child process %s (%s)...' % (name, os.getpid()))

if __name__ == '__main__':
    print('Parent process %s.' % os.getpid())
    p = Process(target=run_proc, args=('test',))
    print('Child process will start.')
    p.start()
    p.join()
    print('Child process end.')
    time.sleep(5)

這個在IDLE執(zhí)行結果如下:

Parent process 11896.
Child process will start.
Child process end.

run_proc里面那句死活不打印,在命令行執(zhí)行就可以顯示子進程,為什么?
如果這樣的話,是不是意味著以后寫多進程的程序一定要在控制臺運行而不能用編譯器運行?

回答
編輯回答
女流氓

我用IDLE PYTHON 3.6, 把 __name__=='__main__' 這行刪去,可以執(zhí)行
而android qpython3 可以不刪也能執(zhí)行,我也想知道為啥

2018年8月24日 01:27
編輯回答
艷骨

我用pycharm運行時沒有問題的,你試試重新創(chuàng)建一個文件在運行?
糾正你的一個錯誤,命令行運行其實是使用python的解釋器,官網(wǎng)的為cpython,cpython版本很多,常用的py2.7和3.6,還有jpython等等,python沒有編譯器,一般c和c#才有編譯器,pycharm是編輯器,集成的開發(fā)環(huán)境
所以你說的在什么執(zhí)行代碼其實最后都是使用python解釋器,輸出情況的不同大概是編輯器的問題,建議按我的方法試試

2018年1月8日 07:44