python os.popen('xxx.py') 遇到的坑 (No Child Processes)

1、调用系统库 platform.system() 报错:

2、os.popen() 打开的文件流未关闭也会出现这种错误。

 f = os.popen()

f.read()

f.close()

问题复现的场景:如果在主进程->开启一个子线程调用os.popen(),主进程会回收os.popen()

                             如果主进程--> 开启线程1 ,线程1开启一个线程2来调用os.popen(),主进程回收os.popen()时,发现线程2不存在,则会出现以上问题。

【Reference】

1、https://blog.csdn.net/Joseph_1118/article/details/17721273

2、http://www.ojit.com/article/1517584

3、https://www.linuxidc.com/Linux/2011-10/45919p3.htm

原文地址:https://www.cnblogs.com/hoojjack/p/11954038.html