diff options
author | Victor Stinner <victor.stinner@gmail.com> | 2017-12-15 01:05:29 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-12-15 01:05:29 (GMT) |
commit | 41264f1cd4d6066b2797ff07cae465c1e06ff3b2 (patch) | |
tree | 79949fe2a6d0a5cbe6bc33851c6b8e86e8340e2d /Python/pylifecycle.c | |
parent | da273412c4374de07a500e7f23f89a6bb7527398 (diff) | |
download | cpython-41264f1cd4d6066b2797ff07cae465c1e06ff3b2.zip cpython-41264f1cd4d6066b2797ff07cae465c1e06ff3b2.tar.gz cpython-41264f1cd4d6066b2797ff07cae465c1e06ff3b2.tar.bz2 |
bpo-32030: Add _PyMainInterpreterConfig.executable (#4876)
* Add new fields to _PyMainInterpreterConfig:
* executable
* prefix
* base_prefix
* exec_prefix
* base_exec_prefix
* _PySys_EndInit() now sets sys attributes from
_PyMainInterpreterConfig
Diffstat (limited to 'Python/pylifecycle.c')
-rw-r--r-- | Python/pylifecycle.c | 32 |
1 files changed, 2 insertions, 30 deletions
diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c index 830f89d..8c62607 100644 --- a/Python/pylifecycle.c +++ b/Python/pylifecycle.c @@ -830,28 +830,7 @@ _Py_InitializeMainInterpreter(const _PyMainInterpreterConfig *config) return _Py_INIT_ERR("can't initialize time"); } - /* Set sys attributes */ - assert(interp->config.module_search_path != NULL); - if (PySys_SetObject("path", interp->config.module_search_path) != 0) { - return _Py_INIT_ERR("can't assign sys.path"); - } - if (interp->config.argv != NULL) { - if (PySys_SetObject("argv", interp->config.argv) != 0) { - return _Py_INIT_ERR("can't assign sys.argv"); - } - } - if (interp->config.warnoptions != NULL) { - if (PySys_SetObject("warnoptions", interp->config.warnoptions)) { - return _Py_INIT_ERR("can't assign sys.warnoptions"); - } - } - if (interp->config.xoptions != NULL) { - if (PySys_SetObject("_xoptions", interp->config.xoptions)) { - return _Py_INIT_ERR("can't assign sys._xoptions"); - } - } - - if (_PySys_EndInit(interp->sysdict) < 0) { + if (_PySys_EndInit(interp->sysdict, &interp->config) < 0) { return _Py_INIT_ERR("can't finish initializing sys"); } @@ -1314,12 +1293,6 @@ new_interpreter(PyThreadState **tstate_p) return _Py_INIT_ERR("failed to copy main interpreter config"); } - err = _PyPathConfig_Init(&interp->core_config); - if (_Py_INIT_FAILED(err)) { - return err; - } - wchar_t *sys_path = Py_GetPath(); - /* XXX The following is lax in error checking */ PyObject *modules = PyDict_New(); if (modules == NULL) { @@ -1334,8 +1307,7 @@ new_interpreter(PyThreadState **tstate_p) goto handle_error; Py_INCREF(interp->sysdict); PyDict_SetItemString(interp->sysdict, "modules", modules); - PySys_SetPath(sys_path); - _PySys_EndInit(interp->sysdict); + _PySys_EndInit(interp->sysdict, &interp->config); } bimod = _PyImport_FindBuiltin("builtins", modules); |