New submission from Arnaud Diederen:

[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.

----------
components: Installation
messages: 256113
nosy: aundro
priority: normal
severity: normal
status: open
title: 32-bit 2.7.11 installer creates registry keys that are incompatible with 
the installed python27.dll
type: behavior
versions: Python 2.7

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue25824>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to