Установка SetupTools в 64-разрядной системе Windows

Я запускаю Python 2.7 В Windows 7 64-бит, и когда я запускаю установщик для 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-битных окон. Я что-то пропустил или мне нужно установить ее источник?

11 ответов


по-видимому (столкнувшись с связанными 64-и 32-битными проблемами на OS X) есть ошибка в установщике Windows. Я наткнулся этот способ, что может помочь-в основном, вы создаете свое собственное значение реестра HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore.6\InstallPath и скопируйте значение InstallPath из HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore.6\InstallPath. См. ответ ниже для получения более подробной информации.

Если вы это сделаете, остерегайтесь, что setuptools может устанавливать только 32-разрядные библиотеки.

Примечание: ответы ниже предложите больше детали, поэтому пожалуйста прочитайте их тоже.


проблема: у вас есть 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 (это обрабатывается windows автоматически, программы не замечают). Это ожидаемое поведение, а не баг.

обычно у вас есть следующие варианты:

  • "чистый" способ: используйте 32-битный Python, если вам нужно использовать 32-битные модули или расширения
  • другой "чистый" способ: используйте только 64-разрядные установщики при использовании 64-разрядного Python (см. ниже)
  • что предлагает ответ выше: копировать HKLM\SOFTWARE\Python to HKLM\SOFTWARE\wow6432node\Python, но это будет вызывают проблемы с двоичными дистрибутивами, так как 64-битный Python не может загружать 32-битные скомпилированные модули (не делайте этого!)
  • установите чистые модули Python с setuptools вместо установщика distutils (easy_install или pip)

для самого setuptools, например, вы не можете использовать 32-разрядный установщик для 64-разрядного Python, поскольку он включает двоичные файлы. но есть 64-разрядный установщик на http://www.lfd.uci.edu / ~gohlke / pythonlibs/ (имеет много установщиков для других модулей тоже). В настоящее время многие пакеты на PyPi имеют двоичные дистрибутивы, поэтому вы можете установить их через pip.


Я сделал реестре (.reg) файл, который автоматически изменит реестр для вас. Он работает, если он установлен в "C:\Python27":

скачать 32-разрядную версию HKEY_LOCAL_MACHINE|HKEY_CURRENT_USER\SOFTWARE\wow6432node\

скачать 64-разрядную версию HKEY_LOCAL_MACHINE|HKEY_CURRENT_USER\SOFTWARE\


Да, вы правы, проблема связана с 64-битным Python и 32-битным установщиком для setuptools.

лучший способ получить 64-битные setuptools установлен на Windows, чтобы загрузить ez_setup.py к C:\Python27\Scripts и запустить его. Он загрузит соответствующий 64-бит .egg файл для setuptools и установить его для вас.

источник:http://pypi.python.org/pypi/setuptools

P. S. Я бы рекомендовала использовать 3-й партии 64-бит .исполняемый setuptools установщики или манипулирование реестра


создайте файл с именем python2.7.reg (файл реестра) и поместите в него этот контент:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore.7]

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore.7\Help]

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore.7\Help\MainPythonDocumentation]
@="C:\Python27\Doc\python26.chm"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore.7\InstallPath]
@="C:\Python27\"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore.7\InstallPath\InstallGroup]
@="Python 2.7"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore.7\Modules]

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore.7\PythonPath]
@="C:\Python27\Lib;C:\Python27\DLLs;C:\Python27\Lib\lib-tk"

и убедитесь, что каждый путь правильный!

затем запустите (объединить) его и готово:)


скачать файл register.py С в этом суть. Сохраните его на диске C или D, перейдите в CMD, чтобы запустить его с помощью:

'python register.py'

тогда вы сможете установить его.


для 64-битного Python в Windows Скачать ez_setup.py и запустите его; он загрузит соответствующий .egg файл и установить его для вас.

на момент написания .exe installer не поддерживает 64-разрядные версии Python для Windows, из-за проблема совместимости установщика distutils.


чтобы установщики Windows могли найти установленный каталог Python в Windows 7, или, измените, в какую установку Python установить установщик, добавьте установленный путь в каталог-установки ключ реестра!--3-->(по умолчанию) значение:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.Х\Каталог-Установки

где "X " - Это версия Python (то есть 2.5, 2.6 или 2.7).


Я попробовал выше, и добавление ключей реестра в LOCALMACHINE не выполняло работу. Поэтому , если вы все еще застряли, попробуйте это.

Редактор Реестра Windows Версии 5.00

[раздел HKEY_CURRENT_USER программное обеспечение\\питон]

[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\программное обеспечение\питона\PythonCore\2.7\помочь\основной документации Python] @="C:\Python27\Doc\python272.ЧМ"

[раздел реестра HKEY_CURRENT_USER\программное обеспечение\питона\PythonCore\2.7\каталог-установки] @="C:\Python27\"

[раздел реестра HKEY_CURRENT_USER\программное обеспечение\питона\PythonCore\2.7\каталог-установки\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\DLLs;C:\Python27\Lib\lib-tk"

скопируйте и вставьте выше в блокнот и сохраните его как Python27.рег. Теперь запустите / объедините файл, как указано в ответах выше. (Убедитесь, что пути установки Python исправлены в соответствии с вашей установкой.

Он просто делает то ,что вышеуказанные ответы предлагают для локальной машины, текущему пользователю.


вот ссылка на другой пост/нить. Я смог запустить этот скрипт для автоматизации регистрации на Python 2.7. (Обязательно запустите его с Python 2.x .exe вы хотите зарегистрироваться!)

для регистрации Python 3.x мне пришлось изменить print синтаксис и импорт winreg (вместо _winreg), затем запустите Python 3 .exe.

https://stackoverflow.com/a/29633714/3568893


вы можете найти 64-битные установщики для многих библиотек здесь:http://www.lfd.uci.edu / ~gohlke / pythonlibs/