Core: do not override sys.stdin when using FreeCAD as Python module

This commit is contained in:
wmayer
2023-05-01 17:04:40 +02:00
committed by wwmayer
parent 7f1e979aad
commit d7174ae2b8
4 changed files with 25 additions and 6 deletions

View File

@@ -469,7 +469,13 @@ PythonConsole::PythonConsole(QWidget *parent)
d->_stderrPy = new PythonStderr(this);
d->_stdinPy = new PythonStdin (this);
d->_stdin = PySys_GetObject("stdin");
PySys_SetObject("stdin", d->_stdinPy);
// Don't override stdin when running FreeCAD as Python module
auto& cfg = App::Application::Config();
auto overrideStdIn = cfg.find("DontOverrideStdIn");
if (overrideStdIn == cfg.end()) {
PySys_SetObject("stdin", d->_stdinPy);
}
const char* version = PyUnicode_AsUTF8(PySys_GetObject("version"));
const char* platform = PyUnicode_AsUTF8(PySys_GetObject("platform"));