Subprocess создает дочерний процесс, но не запускает скрипт
Есть сокет-сервер, исправно работающий, попросили сделать к нему минимальные интерфейс, сделал с помощью PyQt5 в нем есть 2 кнопки: Запуск сервера и Выключения сервера, реализованы через subprocess следующим образом:
Запуск:
def start_serv(self):
self.process = subprocess.Popen('python server.py', shell=True)
logging.info('#' * 80)
logging.debug(f'Process PID: {self.process.pid}')
logging.debug(f'Child process return code: {self.process.returncode}')
self.mb('The server is running!') # отправка сообщения в диалоговое окно
Выключение:
def stop_serv(self):
try:
proc = self.process
proc.send_signal(signal.SIGTERM)
while True:
ex_code = proc.poll()
if ex_code == None or ex_code == '1':
proc.wait()
continue
else:
break
logging.debug(f'Child process exit code: {proc.poll()}')
logging.debug('The server is stopped!')
logging.info('#' * 80)
self.mb('The server is stopped!') # отправка сообщения в диалоговое окно
except Exception as e:
logging.warning(f'Error button: {e}')
self.mb('The server is not running yet!') # отправка сообщения в диалоговое окно
В IDE(PyCharm) все работает отлично. Но после сборки с помощью auto-py-to-exe при нажатии на кнопку запуска создается процесс с новым PID, но сервер не стартует. Пути к файлам во время сборки не изменялись.
Помогите пожалуйста разобраться, где и какие правки мне нужно внести, что бы заработало.
P.S.: Все делается на Python 3.8.2 под RED OS (привет импортозамещение).