diff options
Diffstat (limited to 'devscripts/buildserver.py')
| -rw-r--r-- | devscripts/buildserver.py | 23 | 
1 files changed, 16 insertions, 7 deletions
| diff --git a/devscripts/buildserver.py b/devscripts/buildserver.py index dada6bfc7..2bd12da50 100644 --- a/devscripts/buildserver.py +++ b/devscripts/buildserver.py @@ -273,16 +273,25 @@ class HTTPError(BuildError):  class PythonBuilder(object):      def __init__(self, **kwargs):          python_version = kwargs.pop('python', '3.4') -        try: -            key = compat_winreg.OpenKey( -                compat_winreg.HKEY_LOCAL_MACHINE, r'SOFTWARE\Python\PythonCore\%s\InstallPath' % python_version) +        python_path = None +        for node in ('Wow6432Node\\', ''):              try: -                self.pythonPath, _ = compat_winreg.QueryValueEx(key, '') -            finally: -                compat_winreg.CloseKey(key) -        except Exception: +                key = compat_winreg.OpenKey( +                    compat_winreg.HKEY_LOCAL_MACHINE, +                    r'SOFTWARE\%sPython\PythonCore\%s\InstallPath' % (node, python_version)) +                try: +                    python_path, _ = compat_winreg.QueryValueEx(key, '') +                finally: +                    compat_winreg.CloseKey(key) +                break +            except Exception: +                pass + +        if not python_path:              raise BuildError('No such Python version: %s' % python_version) +        self.pythonPath = python_path +          super(PythonBuilder, self).__init__(**kwargs) | 
