Установка SetupTools в 64-битной Windows
Я запускаю Python 2.7 на 64-разрядной версии Windows 7, и когда я запускаю установщик для setuptools, он говорит мне, что Python 2.7 не установлен. Конкретное сообщение об ошибке:
`Python Version 2.7 required which was not found in the registry`
Моя установленная версия Python:
`Python 2.7 (r27:82525, Jul 4 2010, 07:43:08) [MSC v.1500 64 bit (AMD64)] on win32`
Я смотрю сайт setuptools и не упоминает никаких инсталляторов для 64-битной Windows. Я что-то пропустил или мне нужно установить это из источника?
Ответы
Ответ 1
По-видимому (столкнувшись с связанными 64- и 32-разрядными проблемами в OS X), в установщике Windows есть ошибка . Я наткнулся на это обходное решение, которое может помочь - в основном, вы создаете собственное значение реестра HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.6\InstallPath
и копируете значение InstallPath из HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.6\InstallPath
, Подробнее см. Ниже.
Если вы это сделаете, будьте осторожны, что setuptools может устанавливать только 32-битные библиотеки.
ПРИМЕЧАНИЕ: ответы ниже предлагают более подробную информацию, поэтому, пожалуйста, прочитайте их также.
Ответ 2
Проблема: у вас есть 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-разрядный установщик setuptools смотрит на HKLM\SOFTWARE\wow6432node\Python
(это автоматически обрабатывается окнами, программы не замечают). Это ожидаемое поведение, а не ошибка.
Обычно у вас есть следующие варианты:
- "чистый" способ: использовать 32-разрядный Python, если вам нужно использовать 32-битные модули или расширения.
- другой "чистый" способ: используйте только 64-разрядные установщики при использовании 64-разрядного Python (см. ниже).
- что предлагает приведенный выше ответ: скопируйте
HKLM\SOFTWARE\Python
в HKLM\SOFTWARE\wow6432node\Python
, но этот будет вызывать проблемы с двоичными дистрибутивами, поскольку 64-разрядный Python не может загружать 32-разрядные скомпилированные модули (do НЕ делайте это!)
- установить чистые модули Python с помощью setuptools вместо установщика distutils (easy_install или pip)
Для setuptools, например, вы не можете использовать 32-разрядный установщик для 64-битного Python, так как он включает в себя двоичные файлы. Но есть 64-разрядный установщик в http://www.lfd.uci.edu/~gohlke/pythonlibs/ (у него также много инсталляторов для других модулей). Как правило: устанавливайте модули pure-python с помощью distribute и pip (см. здесь) и найдите бинарный пакет, соответствующий вашей установленной архитектуре Python для все остальное.
Ответ 3
Я создал файл реестра (.reg), который автоматически изменит реестр для вас. Он работает, если он установлен в "C:\Python27":
Загрузите 32-разрядную версию HKEY_LOCAL_MACHINE|HKEY_CURRENT_USER\SOFTWARE\wow6432node\
Загрузите 64-битную версию HKEY_LOCAL_MACHINE|HKEY_CURRENT_USER\SOFTWARE\
Ответ 4
Да, вы правы, проблема связана с 64-разрядным Python и 32-разрядным установщиком для setuptools.
Лучший способ получить установленный в Windows 64-разрядный setuptools - загрузить ez_setup.py в C:\Python27\Scripts и запустить его, Он загрузит соответствующий 64-разрядный .egg файл для setuptools и установит его для вас.
Источник: http://pypi.python.org/pypi/setuptools
P.S. Я бы рекомендовал не использовать сторонние 64-разрядные установки .exe setuptools или управлять реестром.
Ответ 5
Создайте файл с именем python2.7.reg
(файл реестра) и поместите в него этот контент:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.7]
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.7\Help]
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.7\Help\MainPythonDocumentation]
@="C:\\Python27\\Doc\\python26.chm"
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.7\InstallPath]
@="C:\\Python27\\"
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.7\InstallPath\InstallGroup]
@="Python 2.7"
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.7\Modules]
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.7\PythonPath]
@="C:\\Python27\\Lib;C:\\Python27\\DLLs;C:\\Python27\\Lib\\lib-tk"
И убедитесь, что каждый путь прав!
Затем запустите (слить) его и выполните:)
Ответ 6
Получите файл register.py
из этого метода. Сохраните его на диске C или D, перейдите в CMD, чтобы запустить его с помощью:
'python register.py'
Затем вы сможете установить его.
Ответ 7
Для 64-разрядного Python для Windows загрузите ez_setup.py и запустите его; он загрузит соответствующий .egg файл и установит его для вас.
На момент написания установщик .exe не поддерживает 64-разрядные версии Python для Windows из-за проблема совместимости с установкой distutils.
Ответ 8
Чтобы позволить установщикам Windows найти установленный каталог Python в Windows 7, ИЛИ, измените, какую установку Python установить инсталлятор, добавьте установленный путь в значение раздела реестра InstallPath (по умолчанию)
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.X\InstallPath
Где " X" - это версия Python (то есть 2.5, 2.6 или 2.7).
Ответ 9
Я пробовал это, и добавление ключей реестра в LOCALMACHINE не выполнялось. Поэтому, если вы все еще застряли, попробуйте это.
Редактор реестра Windows версии 5.00
[HKEY_CURRENT_USER\SOFTWARE\Python]
[HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore]
[HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\2,7]
[HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\2,7\Help]
[HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\2.7\Help\Основная документация на Python] @= "C:\python27\Doc\python272.chm"
[HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\2.7\InstallPath] @= "C:\python27 \"
[HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\2.7\INSTALLPATH\InstallGroup] @= "Python 2.7"
[HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\2.7\Modules]
[HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\2,7\PYTHONPATH] @= "C:\python27\Lib; C:\python27\DLL,; C:\python27\Lib\Lib-тк"
Скопируйте это в блокнот и сохраните его как Python27.reg. Теперь запустите/слейте файл, как указано в ответах выше. (Убедитесь, что пути установки Python исправлены в соответствии с вашей установкой.
Он просто делает то, что предлагают вышеприведенные ответы для локальной машины, текущему пользователю.
Ответ 10
Вот ссылка на другой пост/поток. Я смог запустить этот script для автоматизации регистрации Python 2.7. (Обязательно запустите его из Python 2.x .exe
, который вы хотите зарегистрировать!)
Для регистрации Python 3.x мне пришлось изменить синтаксис print
и импортировать winreg
(вместо _winreg
), затем запустите Python 3 .exe
.
fooobar.com/questions/45198/...
Ответ 11
Здесь вы можете найти 64-битные инсталляторы для большого количества библиотек: http://www.lfd.uci.edu/~gohlke/pythonlibs/