У меня есть два файла 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.Есть ли способ противостоять этому в основной программе, например, если эта ошибка появляется, сделайте что-нибудь еще? ..
Любая помощь будет принята с благодарностью.