diff --git a/Doc/whatsnew/3.9.rst b/Doc/whatsnew/3.9.rst index f58bcbcd3ce..59083da3a26 100644 --- a/Doc/whatsnew/3.9.rst +++ b/Doc/whatsnew/3.9.rst @@ -548,6 +548,11 @@ Build and C API Changes * The :c:func:`PyModule_AddType` function is added to help adding a type to a module. (Contributed by Dong-hee Na in :issue:`40024`.) +* The Windows registry is no longer used to initialize :data:`sys.path` when + the ``-E`` option is used. This is significant when embedding Python on + Windows. + (Contributed by Zackery Spytz in :issue:`8901`.) + Deprecated ========== diff --git a/Misc/NEWS.d/next/Windows/2020-01-24-09-15-41.bpo-8901.hVnhGO.rst b/Misc/NEWS.d/next/Windows/2020-01-24-09-15-41.bpo-8901.hVnhGO.rst new file mode 100644 index 00000000000..1d452cf2629 --- /dev/null +++ b/Misc/NEWS.d/next/Windows/2020-01-24-09-15-41.bpo-8901.hVnhGO.rst @@ -0,0 +1 @@ +Ignore the Windows registry when the ``-E`` option is used. diff --git a/PC/getpathp.c b/PC/getpathp.c index 7a2c1fd6fe6..aa820e57a9c 100644 --- a/PC/getpathp.c +++ b/PC/getpathp.c @@ -783,8 +783,11 @@ calculate_module_search_path(PyCalculatePath *calculate, { int skiphome = calculate->home==NULL ? 0 : 1; #ifdef Py_ENABLE_SHARED - calculate->machine_path = getpythonregpath(HKEY_LOCAL_MACHINE, skiphome); - calculate->user_path = getpythonregpath(HKEY_CURRENT_USER, skiphome); + if (!Py_IgnoreEnvironmentFlag) { + calculate->machine_path = getpythonregpath(HKEY_LOCAL_MACHINE, + skiphome); + calculate->user_path = getpythonregpath(HKEY_CURRENT_USER, skiphome); + } #endif /* We only use the default relative PYTHONPATH if we haven't anything better to use! */