From fb47bca9ee2d07ce96df94b4e4abafd11826eb01 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Fri, 20 Jul 2018 17:34:23 +0200 Subject: bpo-34008: Allow to call Py_Main() after Py_Initialize() (GH-8043) Py_Main() can again be called after Py_Initialize(), as in Python 3.6. The new configuration is ignored, except of _PyMainInterpreterConfig.argv which is used to update sys.argv. --- Modules/main.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'Modules') diff --git a/Modules/main.c b/Modules/main.c index 6067d5eccf..1ff985517d 100644 --- a/Modules/main.c +++ b/Modules/main.c @@ -2696,9 +2696,13 @@ pymain_main(_PyMain *pymain) pymain_init_stdio(pymain); - pymain->err = _Py_InitializeCore(&pymain->config); - if (_Py_INIT_FAILED(pymain->err)) { - _Py_FatalInitError(pymain->err); + /* bpo-34008: For backward compatibility reasons, calling Py_Main() after + Py_Initialize() ignores the new configuration. */ + if (!_PyRuntime.initialized) { + pymain->err = _Py_InitializeCore(&pymain->config); + if (_Py_INIT_FAILED(pymain->err)) { + _Py_FatalInitError(pymain->err); + } } if (pymain_init_python_main(pymain) < 0) { -- cgit v1.2.1