[Python-checkins] bpo-32030: Fix _Py_InitializeEx_Private() (#4649)

Victor Stinner webhook-mailer at python.org
Thu Nov 30 12:04:02 EST 2017


https://github.com/python/cpython/commit/bc8ac6b00efcb3c601224b73f64071281f434bcd
commit: bc8ac6b00efcb3c601224b73f64071281f434bcd
branch: master
author: Victor Stinner <victor.stinner at gmail.com>
committer: GitHub <noreply at github.com>
date: 2017-11-30T18:03:55+01:00
summary:

bpo-32030: Fix _Py_InitializeEx_Private() (#4649)

_Py_InitializeEx_Private() now calls
_PyMainInterpreterConfig_ReadEnv() to read environment variables
PYTHONHOME and PYTHONPATH, and set the program name.

files:
M Python/pylifecycle.c

diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c
index 01f314e4bd1..f0a49f91fb8 100644
--- a/Python/pylifecycle.c
+++ b/Python/pylifecycle.c
@@ -961,28 +961,35 @@ _Py_InitializeEx_Private(int install_sigs, int install_importlib)
     _PyMainInterpreterConfig config = _PyMainInterpreterConfig_INIT;
     _PyInitError err;
 
-    /* TODO: Moar config options! */
     core_config.ignore_environment = Py_IgnoreEnvironmentFlag;
     core_config._disable_importlib = !install_importlib;
     config.install_signal_handlers = install_sigs;
 
     err = _Py_InitializeCore(&core_config);
     if (_Py_INIT_FAILED(err)) {
-        return err;
+        goto done;
+    }
+
+    err = _PyMainInterpreterConfig_ReadEnv(&config);
+    if (_Py_INIT_FAILED(err)) {
+        goto done;
     }
 
-    /* TODO: Print any exceptions raised by these operations */
     err = _PyMainInterpreterConfig_Read(&config);
     if (_Py_INIT_FAILED(err)) {
-        return err;
+        goto done;
     }
 
     err = _Py_InitializeMainInterpreter(&config);
     if (_Py_INIT_FAILED(err)) {
-        return err;
+        goto done;
     }
 
-    return _Py_INIT_OK();
+    err = _Py_INIT_OK();
+
+done:
+    _PyMainInterpreterConfig_Clear(&config);
+    return err;
 }
 
 



More information about the Python-checkins mailing list