Проблема: у вас 64-бітний Python та 32-розрядний інсталятор. Це спричинить проблеми з розширенням модулів.
Причини, через які інсталятор не знаходить Python, - це прозора 32-бітна емуляція з Windows 7. 64-бітні та 32-розрядні програми записуватимуться в різні частини реєстру Windows.
64-розрядні: HKLM|HKCU\SOFTWARE\
32-розрядні: HKLM|HKCU\SOFTWARE\wow6432node\
.
Це означає, що 64-бітний інсталятор Python записує HKLM\SOFTWARE\Python
, але 32-бітний інсталятор налаштування дивитьсяHKLM\SOFTWARE\wow6432node\Python
це (це обробляється Windows автоматично, програми не помічають). Це очікувана поведінка, а не помилка.
Зазвичай у вас є такі варіанти:
- "чистий" спосіб: використовуйте 32-розрядний Python, якщо вам доведеться використовувати 32-бітні модулі або розширення
- інший "чистий" спосіб: використовуйте лише 64-розрядні програми для встановлення 64-розрядних Python (див. нижче)
- що відповідь вище пропонує: копію
HKLM\SOFTWARE\Python
на HKLM\SOFTWARE\wow6432node\Python
, але це буде викликати проблеми з бінарними розподілів, так як 64-розрядні Python не може завантажувати 32-розрядні скомпільовані модулі (не робіть цього!)
- встановити чисті модулі Python із програмою setuptools замість встановлення distutils (easy_install або pip)
Для самих setuptools, наприклад, ви не можете використовувати 32-бітний інсталятор для 64-бітного Python, оскільки він включає двійкові файли. Але на веб-сайті http://www.lfd.uci.edu/~gohlke/pythonlibs/ є 64-розрядний інсталятор (є багато інсталяторів для інших модулів) . Сьогодні багато пакунків на PyPi мають бінарні дистрибутиви, тож їх можна встановити через pip.