Я не могу установить NumPy, потому что он не может найти Python 2.7, хотя я установил Python - PullRequest
30 голосов
/ 13 марта 2012

Я не могу установить numpy, потому что он не может найти python 2.7, хотя я установил python.

У меня есть сообщение: "Требуется Python версии 2.7, который не может быть найден в реестре"

Есть решение моей проблемы?

Ответы [ 7 ]

54 голосов
/ 16 июля 2012

Это не редкость для инсталляторов (например, Numpy), которые зависят от или ищут ранее установленное 64-битное базовое приложение (например, Python x64). Проблема и решение легко объяснить.

ПРОБЛЕМА ИМХО, это ошибка со стороны разработчика уже установленного 64-битного приложения, когда запись реестра размещается в 32-битном узле, а не (или в дополнение к) 64-битному узлу. На самом деле, разработчик установщика может также написать код для просмотра в обоих местах, вместо того, чтобы просто предполагать, что запись реестра для 64-битных приложений будет находиться в \ Wow6432Node, чтобы избежать этой проблемы из-за недосмотра исходного разработчика; однако, если установщик принимает решение о том, является ли приложение 32- или 64-разрядным, в зависимости от расположения записи в реестре (не очень хорошая идея), это может быть проблематично.

Иногда с 64-битными приложениями будет создаваться запись реестра в ...

HKLM\SOFTWARE\[applicaion name]

Однако соответствующая запись реестра не создана в ...

HKLM\SOFTWARE\Wow6432Node\[application name]

РЕШЕНИЕ Самый простой способ решить эту проблему с помощью любого приложения - это ...

  1. Открыть редактор реестра (START -> RUN -> regedit)
  2. Перейдите к HKEY_LOCAL_MACHINE \ SOFTWARE \ [имя приложения] (в данном случае «Python»)
  3. Щелкните правой кнопкой мыши на приложении («Python»)
  4. Выберите «Экспорт» и сохраните файл где-нибудь как «[имя приложения] .reg» («Python.reg»)
  5. Откройте сохраненный файл в любом редакторе (мне нравится Notepad ++)
  6. В каждой записи сразу после "[HKEY_LOCAL_MACHINE \ SOFTWARE", но до \ [имя приложения] ("\ Python") добавьте "\ Wow6432Node" (без кавычек, очевидно)
  7. Сохранить отредактированный файл как "[имя приложения] _64.reg" (Python_64.reg ")
  8. Закройте редактор и дважды щелкните по вновь созданному файлу, ответьте «Да» на всплывающее окно проверки редактора реестра.

Теперь у вас должны быть повторяющиеся записи в 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 перезапишет существующие записи), или просто добавьте новый вручную вход - все, что кажется вам проще.

23 голосов
/ 13 марта 2012

Вы должны установить Python 32bit или использовать пакет numpy для Python 64bit с этого неофициального сайта

7 голосов
/ 27 ноября 2012

Эта проблема также влияет на 32-битный Numpy на 32-битном Python.

Причина заключается в том, что установщик numpy предполагает, что при установке Python вы выбрали « install для всех пользователей », т. Е. Что установщик Python использовал общесистемную HKEY_LOCAL_MACHINE часть реестр. Если вы вместо этого выбрали « установить для меня только », эти параметры реестра будут находиться в доступном для записи разделе реестра, * HKEY_USERS _ * (он же HKEY_CURRENT_USER ) , Numpy установщик не ищет там и поэтому думает, что Python не установлен.

Решение: Скопируйте ключ HKEY_CURRENT_USER \ Software \ Python и все вложенные ключи в соответствующее место под HKEY_LOCAL_MACHINE \ Software (вы можете сделать это с помощью Export from regedit, затем найдите и замените в текстовом файле, затем импортировать). Или переустановите Python и выберите «все пользователи».

2 голосов
/ 13 марта 2012

Вы должны использовать версии Python и NumPy.Оба должны быть 32-битными или 64-битными.

1 голос
/ 03 ноября 2015

Вы должны установить Python 2.7 32bit.Все числовые версии окон Python являются 32-битными.

0 голосов
/ 14 декабря 2016
  1. Запустить установщик

  2. Нажмите «Отмена» при появлении ошибки

  3. Нажмите показать сведения

  4. В конце списка будет указано: Execute: C:\.........\numpy-1.7.1-sse3.exe, перейдите в эту папку, возьмите этот файл и поместите его в C:\python27\

  5. Как только он появитсяпапку, запустите его из этого места.Программа установки запустится и найдет ее.

0 голосов
/ 09 февраля 2014

Удалите Python из вашей системы и переустановите снова. Тогда скачайте numpy с этого сайта: http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy

Если вы хотите проверить версию numpy в своей системе, напишите следующий код в IDE:

import numpy
numpy.version.version

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...