From d6ef6ea1dcf89842121cebc9dbc23694e4fa4d8b Mon Sep 17 00:00:00 2001 From: wea_ondara Date: Wed, 29 May 2024 18:37:31 +0200 Subject: [PATCH] fix python stdout and stderr integration --- ai/server.py | 2 -- backend/src/services/AiPythonConnector.ts | 7 ++++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/ai/server.py b/ai/server.py index 9d26c8b..77bbf46 100644 --- a/ai/server.py +++ b/ai/server.py @@ -60,6 +60,4 @@ class Server: port = port or 8900 with self.HTTPServer(("127.0.0.1", port), handler) as httpd: print("serving at http://127.0.0.1:" + str(port)) - import sys - sys.stdout.flush() httpd.serve_forever() diff --git a/backend/src/services/AiPythonConnector.ts b/backend/src/services/AiPythonConnector.ts index 4b496ed..67932d1 100644 --- a/backend/src/services/AiPythonConnector.ts +++ b/backend/src/services/AiPythonConnector.ts @@ -76,10 +76,11 @@ export default class AiPythonConnector { const port = await this.port(); return await new Promise((resolve, reject) => { console.log('ai: starting python backend'); - this.process = exec('. ../.venv/bin/activate && cd ../ai && python3 main.py --port ' + port); + this.process = exec('. ../.venv/bin/activate && cd ../ai && python3 main.py --port ' + port, + {env: {'PYTHONUNBUFFERED': '1'}}); this.process.stdout!.on('data', (data) => { - console.log('ai: ' + data.toString()); + console.log('ai: ' + data.toString().replace(/\r?\n$/, '')); if (data.includes('' + port)) { console.log('ai: python backend started'); resolve(); @@ -87,7 +88,7 @@ export default class AiPythonConnector { }); this.process.stderr!.on('data', (data) => { - console.error('ai: ' + data.toString()); + console.error('ai: ' + data.toString().replace(/\r?\n$/, '')); }); this.process.on('exit', (code) => {