Это не редкость для инсталляторов (например, Numpy), которые зависят от или ищут ранее установленное 64-битное базовое приложение (например, Python x64). Проблема и решение легко объяснить.
ПРОБЛЕМА
ИМХО, это ошибка со стороны разработчика уже установленного 64-битного приложения, когда запись реестра размещается в 32-битном узле, а не (или в дополнение к) 64-битному узлу. На самом деле, разработчик установщика может также написать код для просмотра в обоих местах, вместо того, чтобы просто предполагать, что запись реестра для 64-битных приложений будет находиться в \ Wow6432Node, чтобы избежать этой проблемы из-за недосмотра исходного разработчика; однако, если установщик принимает решение о том, является ли приложение 32- или 64-разрядным, в зависимости от расположения записи в реестре (не очень хорошая идея), это может быть проблематично.
Иногда с 64-битными приложениями будет создаваться запись реестра в ...
HKLM\SOFTWARE\[applicaion name]
Однако соответствующая запись реестра не создана в ...
HKLM\SOFTWARE\Wow6432Node\[application name]
РЕШЕНИЕ
Самый простой способ решить эту проблему с помощью любого приложения - это ...
- Открыть редактор реестра (START -> RUN -> regedit)
- Перейдите к HKEY_LOCAL_MACHINE \ SOFTWARE \ [имя приложения] (в данном случае «Python»)
- Щелкните правой кнопкой мыши на приложении («Python»)
- Выберите «Экспорт» и сохраните файл где-нибудь как «[имя приложения] .reg» («Python.reg»)
- Откройте сохраненный файл в любом редакторе (мне нравится Notepad ++)
- В каждой записи сразу после "[HKEY_LOCAL_MACHINE \ SOFTWARE", но до \ [имя приложения] ("\ Python") добавьте "\ Wow6432Node" (без кавычек, очевидно)
- Сохранить отредактированный файл как "[имя приложения] _64.reg" (Python_64.reg ")
- Закройте редактор и дважды щелкните по вновь созданному файлу, ответьте «Да» на всплывающее окно проверки редактора реестра.
Теперь у вас должны быть повторяющиеся записи в HKLM \ SOFTWARE \ [имя приложения] и HKLM \ SOFTWARE \ Wow6432Node \ [имя приложения]. Кроме того, вы можете вручную создать все отсутствующие записи в HKLM \ SOFTWARE \ Wow6432Node \ [имя приложения], чтобы они соответствовали содержимому в HKLM \ SOFTWARE \ [имя приложения], но это действительно долгий путь.
Когда вы перезапустите установщик Numpy, он теперь будет правильно определять вашу 64-битную установку Python.
CAVEAT
На все это есть предостережение.
Повторяющиеся записи в HKLM \ SOFTWARE и HKLM \ SOFTWARE \ Wow6432Node не являются проблемой и не влияют на нормальную работу приложения; однако, поскольку разработчик пропустил создание записи реестра Wow6432Node, маловероятно, что любые будущие обновления, которые изменяют записи реестра, будут заполнены в обоих местах. Иногда вам придется либо выполнить эту операцию снова, либо вручную добавить новые записи реестра в Wow6432Node, чтобы сохранить их согласованность. Примером, в котором вы можете столкнуться с этим, является установка модулей Python, которые добавляют запись в HKLM \ SOFTWARE \ Python \ PythonCore \ 2.x \ Modules \. Вы можете экспортировать только добавленную запись и отредактировать файл .reg, включив только «\ Wow6432Node», экспортировать весь узел \ Python и отредактировать все записи (импорт отредактированного файла .reg перезапишет существующие записи), или просто добавьте новый вручную вход - все, что кажется вам проще.