[Python-checkins] bpo-8901: Windows registry path is now ignored with the -E option (GH-18169)

Zackery Spytz webhook-mailer at python.org
Mon Mar 30 12:04:52 EDT 2020


https://github.com/python/cpython/commit/676b105111e2399ed400cd13ab113f9aa891760d
commit: 676b105111e2399ed400cd13ab113f9aa891760d
branch: master
author: Zackery Spytz <zspytz at gmail.com>
committer: GitHub <noreply at github.com>
date: 2020-03-30T17:04:45+01:00
summary:

bpo-8901: Windows registry path is now ignored with the -E option (GH-18169)

files:
A Misc/NEWS.d/next/Windows/2020-01-24-09-15-41.bpo-8901.hVnhGO.rst
M Doc/whatsnew/3.9.rst
M PC/getpathp.c

diff --git a/Doc/whatsnew/3.9.rst b/Doc/whatsnew/3.9.rst
index f58bcbcd3ce4e..59083da3a262b 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 0000000000000..1d452cf26297f
--- /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 7a2c1fd6fe63d..aa820e57a9cb2 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! */



More information about the Python-checkins mailing list