Subprocess.popen引发异常错误

时间:2019-03-23 18:07:11

标签: python multithreading exception subprocess traceback

我有两个Python文件,文件1和文件2,它们分别执行两个操作。我希望其中一个(子进程)在父进程中满足条件时在后台启动。如果子进程自身不满足条件,则应该退出。我正在使用VS2017

文件1的伪代码为:

Class A:
   foo1():
    .
    .
   foo2();
    if variable<30;
        #do this
    else;
      process = subprocess.Popen('py file2.py' ,shell=True,stdin=None, stdout=None, stderr=None, close_fds=True)

    #rest of the code for foo2()

if __name__ == "__main__":   
  A.foo2();

和file2.py是:

Class B:
   foo1():
    .
    .
   foo2();
    if check>0;
        #do this
    else;
      sys.exit()

    #rest of the code for foo2()

if __name__ == "__main__":   
  B.foo2();

但是当我运行父程序时,在“变量”的某些值集(变量在程序中不断变化)期间,出现以下错误:

 Exception ignored in: <module 'threading' from 'C:\\Users\\Tianhe-2\\Anaconda3\\lib\\threading.py'>
Traceback (most recent call last):
  File "C:\Users\Tianhe-2\Anaconda3\lib\threading.py", line 1296, in _shutdown
    _main_thread._delete()
  File "C:\Users\Tianhe-2\Anaconda3\lib\threading.py", line 1015, in _delete
    del _active[get_ident()]
KeyError: 25044

我用不同的KeyError值得到了多行这些错误。在主程序中有没有办法解决此问题,例如是否出现此错误,请执行其他操作。

任何人和所有帮助将不胜感激。

0 个答案:

没有答案