2011-07-12 3 views
7

Я пытаюсь установить pywin32 для Python 2.6. У меня установлен python, но он не находится в обычном c: диске, а на диске d:. Установщик pywin32 не находит его, и я не могу предоставить ему свой собственный путь.Проблема установки pywin32

Я проверил, папка thepython - это путь. Есть ли обходной путь этой проблемы?

ответ

14

С pywin32 README

Если процесс установки сообщит вам, что Python не найден в реестре, это почти наверняка означает, что вы скачали неправильную версию - либо для неправильной версии Python, или неправильное «прикосновение».

Уверены ли вы, что у вас есть правильная версия для вашего питона и вашей архитектуры процессора? Если вы это сделали, и это не сработало, вы можете попробовать создать исходный код, я думаю, может быть флаг командной строки, который позволит вам указать местоположение установки python.

+0

Уверен, что у меня есть правильная версия (Python26), и я не нашел разные пакеты для 64 или 32 архитектур (у меня 64-разрядный). Поэтому я попытался установить его из исходного кода, как вы предложили, но когда я запустил setup.py install, он дал мне кучу ошибок. – Johanna

+0

Итак, вы были правы, возникла проблема с архитектурой.Я нашел 64-битную версию pywin32, и она отлично работала :) – Johanna

+6

Этот ответ «неверен». Проблема заключается в ключе reg, если python установлен только для пользователя, найдите HKEY_CURRENT_USER \ SOFTWARE \ Python \ PythonCore \ 2.7 вместо HKEY_LOCAL_MACHINE. Убедитесь, что InstallPath и PythonPath установлены правильно, например. InstallPath - это C: \ Python27, PythonPath - это C: \ Python27; C: \ Python27 \ Lib; C: \ Python27 \ DLL. – FastZhong

8

У меня была та же проблема:

На 64-битной Windows, 32-битные приложения регистрируются в:

[1] HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Python

Я считаю, инсталлятор ожидая найти Python в:

[2] HKEY_LOCAL_MACHINE \ SOFTWARE \ Python

с REGEDIT, и локальными правами администратора, вы с экспорт файла .reg из [1], удалите все "WOW6432Node \" вы найдете, а затем импортировать его в [2]

+0

Большое вам спасибо! Это решило мою проблему. – user4447655

0

1) Создайте текстовый файл с таким содержимым:

Windows Registry Editor Version 5.00 

[HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\3.4] 

[HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\3.4\Help] 

[HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\3.4\Help\Main Python Documentation] @="C:\\Python34\\Doc\\python342.chm" 

[HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\3.4\InstallPath] @="C:\\Python34\\" 

[HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\3.4\InstallPath\InstallGroup] @="Python 3.4" 

[HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\3.4\Modules] 

[HKEY_LOCAL_MACHINE\SOFTWARE\PythonCore\3.4\PythonPath] @="C:\\Python34\\Lib;C:\\Python34\\DLLs" 

2) Замените C: \\ Python34 частью пути, на котором вы установили python.

3) Сохраните файл * .reg

4) Запустите файл для объединения с реестром.

Только что протестировал его, чтобы установить pywin32, и он работает!

14

Обновление 2017-06-14 Похоже, что с python 3.6 такая же проблема повторена. Но я нашел хорошее предложение: Там есть версия пипс pywin32: Просто используйте

pip install pypiwin32

Это не установить последнюю версию (SourceForge имеет 221 в данный момент, он установил 220), но она работала без изменения реестра или любые другие хаки.

Update 2017-02-01: Я просто попытался установки сборки 220 с помощью Python 3.5.2 32 бит на Windows, 10 (64 бит), и все работало хорошо без и необходимости вносить изменения в реестр. Поэтому лучшим советом может быть использование самой последней сборки вместо сборки 219.

Старый решение (сборка 219):

Я столкнулся с той же проблемой сегодня, когда я попытался установить pywin32 вместе с Python 3.5 win32 под ОС Windows 8.1.

Все инсталляторы (сборка 219) для py 3.5 не удалось, и изменение реестра, как описано в сообщениях Иисуса Флорес и Лорен Алсина, не решило проблему.

Что сделал трюк для меня, чтобы добавить в реестр entrys не HKEY_LOCAL_MACHINE но в HKEY_CURRENT_USERи изменить версию питона в PythonCore от 3.5-32 к 3.5.

Интересно, что с ключом 3.5-32 работает 64-разрядный установщик, но, конечно, вы столкнетесь с проблемами, поскольку установленные 64-разрядные библиотеки несовместимы с 32-разрядным питоном. В этом установщике что-то очень нарушено.

Таким образом, в общем, мой рабочий REG-файл для Python 3.5 w32 выглядит следующим образом:

Windows Registry Editor Version 5.00 

[HKEY_CURRENT_USER\SOFTWARE\Python] 

[HKEY_CURRENT_USER\SOFTWARE\Python\PyLauncher] 
"InstallDir"="C:\\Windows\\" 
"AssociateFiles"=dword:00000001 
@="C:\\Windows\\py.exe" 

[HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore] 

[HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\3.5] 

[HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\3.5\Help] 

[HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\3.5\Help\Main Python Documentation] 
@="C:\\Program Files (x86)\\Python 3.5\\Doc\\python350.chm" 

[HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\3.5\Idle] 
@="C:\\Program Files (x86)\\Python 3.5\\Lib\\idlelib\\idle.pyw" 

[HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\3.5\IdleShortcuts] 
@=dword:00000001 

[HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\3.5\InstalledFeatures] 
"dev"="3.5.150.0" 
"Shortcuts"="3.5.150.0" 
"exe"="3.5.150.0" 
"lib"="3.5.150.0" 
"test"="3.5.150.0" 
"doc_shortcut"="3.5.150.0" 
"doc"="3.5.150.0" 
"tools"="3.5.150.0" 
"tcltk"="3.5.150.0" 
"pip"="3.5.150.0" 
"path"="3.5.150.0" 

[HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\3.5\InstallPath] 
@="C:\\Program Files (x86)\\Python 3.5\\" 
"ExecutablePath"="C:\\Program Files (x86)\\Python 3.5\\python.exe" 

[HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\3.5\InstallPath\InstallGroup] 
@="Python 3.5" 

[HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\3.5\PythonPath] 
@="C:\\Program Files (x86)\\Python 3.5\\Lib\\;C:\\Program Files (x86)\\Python 3.5\\DLLs\\" 
+0

Работает под Windows 7 и Windows 10 с использованием Python 3.5 при использовании 32-битного исполняемого файла. Благодарю. –

+0

Теперь это исправлено в Python 3.5.1 ([Issue # 26071] (https://bugs.python.org/26071)). – Cito

+0

Ницца! Это также работает с Python 3.5 * 64-бит * в Windows 7 с Pywin32 2.2.0 (pywin32-220.win-amd64-py3.5.exe) –

3

У меня была та же проблема, для последней Python36-32 работает на Windows 10 64 бит. Все решения выше не работали для меня при установке для всех пользователей режим.

Ответ Obu выше почти сработал путем замены 3.5 до 3.6, тогда pywin32 может обнаружить путь к реестру, но он все еще не с кодом ошибки can't create pywin32-wininst.log. Try to run as administrator. Он просто прекратит установку, а затем выйдет, хотя уже запускает ее как администратор.

После многих испытаний, он решил, как показано ниже:

  1. Возьмите Obu's approach above, замена версии 3.5 до 3.6.

  2. Зарегистрироватся.

  3. Rename установка по умолчанию папка python36-32, что-то вроде этого: C:\Program Files (x86)\Python36-32 к C:\Program Files (x86)\Python36
  4. Run pywin32 инсталлятор от имени администратора.

* Извините, но я не могу ответить на комментарий здесь, поэтому я создал этот ответ, чтобы помочь другим, у кого есть те же проблемы, что и у меня.

+0

Работает на Windows 10 с использованием Python 3.6 x86. Благодарю. –

2

У меня была такая же проблема на Windows 10 64 бит с Python 3.6. Он установлен для всех пользователей (я предполагаю, что он использует другой куст реестра, если он установлен только для текущего пользователя).

Проблема заключалась в том, что pywin32-220.win32-py3.6.exe поиск в реестре для HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Python\PythonCore\3.6 в то время как питон 3.6 настройки созданы HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Python\PythonCore\3.6-32.

Обратите внимание на разные окончания! Экспорт реестра 3.6-32 в файл .reg, изменение путей до 3.6 и повторная копирование реестра снова устранили проблему для меня.

+0

И у меня была обратная проблема. Настройка Python 3.6 создала 'HKEY_LOCAL_MACHINE \ SOFTWARE \ Python \ PythonCore \ 3.6', в то время как PyWin нуждался в' HKEY_LOCAL_MACHINE \ SOFTWARE \ Python \ PythonCore \ 3.6-32'. Мне пришлось временно переименовать ключ, чтобы ключ был установлен для работы. –

0

Я был в аналогичной ситуации, пытаясь установить pywin32, но с Winpython переносной установкой. После довольно большого поиска я нашел ссылку на этот огромный репозиторий пакетов в ячейках .whl на Christoph Gohlke.

Загрузите соответствующий файл колеса для питона версии, в моем случае 3.6.1 на 32-битном, и установить его с помощью пипа:

pip install pywin32‑221‑cp36‑cp36m‑win32.whl 
-1

pywin32 построить 219 имеет проблему в том, что он ищет python 3.5 32-разрядная установка в неправильном разделе реестра. Эта проблема исправлена ​​в последующих строках pywin32 - 220 и 221 - те, которые я пробовал, - и они правильно найдут место установки python в реестре. Вы можете увидеть билет pywin32 here.

Если вам нужна сборка 219, вы можете временно переименовать запись в реестре.

Я устанавливаю python для всех пользователей на своем ПК, поэтому записи реестра на моей машине находятся в HKEY_LOCAL_MACHINE. Если вы устанавливаете python для каждого пользователя, записи реестра будут в HKEY_CURRENT_USER. Кроме того, мой COM-объект 32-разрядный, поэтому мы используем 32-разрядный питон.

32-разрядные записи реестра python будут расположены по адресу: \SOFTWARE\Wow6432Node\Python\PythonCore.

64-разрядные записи реестра python будут расположены по адресу: \SOFTWARE\Python\PythonCore.

В моем случае, у меня было две записи, которые должны быть временно переименованы:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\3.5 

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\3.5-32 

Питон место установки находится в InstallPath ключа, который на моей машине находится по адресу:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\3.5-32\InstallPath 

В моей папке \PythonCore\3.5 есть ключ \Help\Pythonwin Reference, который дублируется в папке \PythonCore\3.5-32, поэтому я думаю, что этот ключ оставлен после предыдущей установки и больше не актуальен. Тем не менее, я не выбрала, чтобы удалить его, и я временно переименовывается как выглядит следующим образом:

От:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\3.5 

To:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\3.5-temp 

От:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\3.5-32 

Для :

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\3.5 

После завершения установки pywin32 build 219 я вернул ключи обратно к исходным именам.