我有两个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值得到了多行这些错误。在主程序中有没有办法解决此问题,例如是否出现此错误,请执行其他操作。
任何人和所有帮助将不胜感激。