summaryrefslogtreecommitdiffstats
path: root/Python/pylifecycle.c
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@gmail.com>2017-12-15 01:05:29 (GMT)
committerGitHub <noreply@github.com>2017-12-15 01:05:29 (GMT)
commit41264f1cd4d6066b2797ff07cae465c1e06ff3b2 (patch)
tree79949fe2a6d0a5cbe6bc33851c6b8e86e8340e2d /Python/pylifecycle.c
parentda273412c4374de07a500e7f23f89a6bb7527398 (diff)
downloadcpython-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.c32
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);