> It looks like Py_SetPath() sets the _Py_path_config.prefix to "", but I'm not seeing anything else set it to a real value?
In the master branch, _Py_CheckPython3() doesn't use _Py_path_config.prefix.
_PyPathConfig_InitDLLPath() calls GetModuleFileNameW(PyWin_DLLhModule, dll_path, MAXPATHLEN) if PyWin_DLLhModule is initialized.
For example, _PyPathConfig_InitDLLPath() is called by Py_Initialize() and Py_SetPath().
PyWin_DLLhModule is initialized by DllMain().
The code in the 3.8 branch looks very similar (I backported my "Remove _PyPathConfig.dll_path" change to 3.8: commit 9f3dcf802eefeb5ab821ce3c7204ab46557d53d7).