Message256113
[First of all let me say I'm not all that familiar with Windows, so please let me know if the wording in my analysis below is not clear and/or misleading.]
It would appear the 32-bit installer for Python 2.7.11 creates the registry key:
---
HKLM\Software\Wow6432Node\Python\PythonCore\2.7\PythonPath
---
(...just like previous 2.7 versions did.)
However, registry accesses (PC/getpathp.c's getpythonpath()) are done like so:
---
(...)
keyBuf = keyBufPtr = PyMem_RawMalloc(keyBufLen);
if (keyBuf==NULL) goto done;
memcpy_s(keyBufPtr, keyBufLen, keyPrefix, sizeof(keyPrefix)-sizeof(WCHAR));
keyBufPtr += Py_ARRAY_LENGTH(keyPrefix) - 1;
mbstowcs(keyBufPtr, PyWin_DLLVersionString, versionLen);
(...)
---
where 'PyWin_DLLVersionString' now is "2.7-32":
---
.rsrc:1E2760FA unicode 0, <2.7-32>,0
---
(it used to be "2.7" in previous versions)
Thus, the key that python27.dll builds is:
HKLM\Software\Wow6432Node\Python\PythonCore\2.7-32\PythonPath
and not
HKLM\Software\Wow6432Node\Python\PythonCore\2.7\PythonPath
and consequently the runtime cannot build a proper sys.path, which causes embedded interpreters to fail loading core modules.
As a workaround, it seems renaming the registry key to its "-32"-suffixed name, does help. |
|
Date |
User |
Action |
Args |
2015-12-08 14:16:40 | aundro | set | recipients:
+ aundro |
2015-12-08 14:16:40 | aundro | set | messageid: <1449584200.04.0.891595448742.issue25824@psf.upfronthosting.co.za> |
2015-12-08 14:16:39 | aundro | link | issue25824 messages |
2015-12-08 14:16:39 | aundro | create | |
|