diff options
author | Victor Stinner <vstinner@redhat.com> | 2019-09-21 00:13:14 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-09-21 00:13:14 (GMT) |
commit | 9f3dcf802eefeb5ab821ce3c7204ab46557d53d7 (patch) | |
tree | d1e7b26a770e63c9654a3596d0080790ec732eec /Python/pylifecycle.c | |
parent | 245d439320e0921459502883fe809213e3b93e35 (diff) | |
download | cpython-9f3dcf802eefeb5ab821ce3c7204ab46557d53d7.zip cpython-9f3dcf802eefeb5ab821ce3c7204ab46557d53d7.tar.gz cpython-9f3dcf802eefeb5ab821ce3c7204ab46557d53d7.tar.bz2 |
[3.8] bpo-38234: Fix PyConfig_Read() when Py_SetPath() was called (GH-16298) (GH-16313)
* bpo-38234: Remove _PyPathConfig.dll_path (GH-16307)
The DLL path is not computed from any user configuration and cannot
be configured by PyConfig. Instead, add a new _Py_dll_path global variable.
Remove _PyConfig_SetPathConfig(): replaced with _PyPathConfig_Init().
Py_Initialize() now longer sets the "global path configuration",
but only initialize _Py_dll_path.
(cherry picked from commit c422167749f92d4170203e996a2c619c818335ea)
* bpo-38234: Fix PyConfig_Read() when Py_SetPath() was called (GH-16298)
* If Py_SetPath() has been called, _PyConfig_InitPathConfig() now
uses its value.
* Py_Initialize() now longer copies path configuration from PyConfig
to the global path configuration (_Py_path_config).
(cherry picked from commit e267793aa4101b2771ed0e66aaff5743d23f59af)
Diffstat (limited to 'Python/pylifecycle.c')
-rw-r--r-- | Python/pylifecycle.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c index 97bb992..a9a6589 100644 --- a/Python/pylifecycle.c +++ b/Python/pylifecycle.c @@ -472,7 +472,7 @@ pyinit_core_reconfigure(_PyRuntimeState *runtime, config = &interp->config; if (config->_install_importlib) { - status = _PyConfig_SetPathConfig(config); + status = _PyPathConfig_Init(); if (_PyStatus_EXCEPTION(status)) { return status; } @@ -623,6 +623,8 @@ pycore_init_builtins(PyInterpreterState *interp) static PyStatus pycore_init_import_warnings(PyInterpreterState *interp, PyObject *sysmod) { + const PyConfig *config = &interp->config; + PyStatus status = _PyImport_Init(interp); if (_PyStatus_EXCEPTION(status)) { return status; @@ -638,15 +640,15 @@ pycore_init_import_warnings(PyInterpreterState *interp, PyObject *sysmod) return _PyStatus_ERR("can't initialize warnings"); } - if (interp->config._install_importlib) { - status = _PyConfig_SetPathConfig(&interp->config); + if (config->_install_importlib) { + status = _PyPathConfig_Init(); if (_PyStatus_EXCEPTION(status)) { return status; } } /* This call sets up builtin and frozen import support */ - if (interp->config._install_importlib) { + if (config->_install_importlib) { status = init_importlib(interp, sysmod); if (_PyStatus_EXCEPTION(status)) { return status; |