2011-07-12 13 views
7

Sto cercando di installare pywin32 per Python 2.6. Ho python installato ma non è nella normale unità c: ma sul disco d :. Il programma di installazione di pywin32 non lo trova e non posso fornire il percorso personalizzato.Problema durante l'installazione di pywin32

Ho controllato, la cartella python è il percorso. C'è una soluzione alternativa a questo problema?

risposta

14

Dal README pywin32

Se il processo di installazione informa che Python non si trova nel Registro di sistema , significa quasi certamente aver scaricato la versione sbagliata - sia per la versione sbagliata di Python, o la "berta" sbagliata.

Sei sicuro di avere la versione giusta per il tuo python e l'architettura della cpu? Se l'hai fatto e questo non ha funzionato, potresti provare a creare dal sorgente, penso che ci possa essere un flag da riga di comando per permetterti di specificare il percorso di installazione di Python.

+0

Sono sicuro di avere la versione giusta (Python26) e non ho trovato pacchetti diversi per 64 o 32 architetture (ho 64 bit). Così ho provato ad installarlo dal sorgente come suggerito ma quando eseguo setup.py install mi dà un sacco di errori – Johanna

+0

Quindi avevi ragione, c'era un problema con l'architettura.Ho trovato una versione a 64 bit di pywin32 e ha funzionato bene :) – Johanna

+6

Questa risposta è "errata". Il problema è la chiave reg, se python è installato solo per l'utente, cerca HKEY_CURRENT_USER \ SOFTWARE \ Python \ PythonCore \ 2.7, invece di HKEY_LOCAL_MACHINE. Assicurati che InstallPath e PythonPath siano impostati correttamente, ad es. InstallPath è C: \ Python27, PythonPath è C: \ Python27; C: \ Python27 \ Lib; C: \ Python27 \ DLLs. – FastZhong

8

Ho avuto lo stesso problema:

a 64 bit di Windows, 32 applicazioni bit vengono registrati sotto:

[1] HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Python

Mi sa che l'installatore è aspettandosi di trovare in Python:

[2] HKEY_LOCAL_MACHINE \ SOFTWARE \ Python

Con diritti di amministratore regedit e locali, si c un'esportazione un file .reg di [1], rimuovere tutti i "Wow6432Node \" a trovare, quindi importarlo come [2]

+0

Grazie mille! Questo ha risolto il mio problema. – user4447655

0

1) Creare un file di testo con questo contenuto:

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) Sostituisci la parte C: \\ Python34 con il percorso che hai installato python.

3) Salvare il file come * .reg

4) Eseguire il file di combinare con il Registro.

Appena testato per installare pywin32 e funziona!

14

Aggiornamento 2017-06-14 Sembra come con python 3.6 lo stesso problema riproposto. Ma ho trovato un bel suggerimento: Esiste una versione pip di pywin32: Basta usare

pip install pypiwin32

E non è stato installato l'ultima versione (SourceForge ha 221, al momento, ha installato 220), ma ha funzionato senza modifiche al registro o altri tipi di hack.

Aggiornamento 2017/02/01: Ho appena provato l'installazione di costruzione 220 utilizzando Python 3.5.2 a 32 bit su Windows 10 (64 bit), e tutto ha funzionato bene senza e la necessità di modificare il Registro di sistema. Quindi il miglior consiglio potrebbe essere quello di usare la build più recente invece della build 219.

vecchia soluzione (build 219):

Ho incontrato lo stesso problema di oggi, quando ho provato ad installare pywin32 insieme a Python 3.5 Win32 in Windows 8.1.

Tutti gli installer (build 219) per py 3.5 non sono riusciti e la modifica del registro come descritto nei post di Jesus Flores e lauren alsina non ha risolto il problema.

Che cosa ha fatto il trucco per me è stato quello di aggiungere il Registro di sistema non entrys in HKEY_LOCAL_MACHINE ma in HKEY_CURRENT_USERe cambiare la versione di Python in PythonCore da 3.5-32 a 3.5.

È interessante notare che con la chiave 3.5-32, l'installer a 64 bit funziona, ma ovviamente si incontreranno dei problemi perché le librerie a 64 bit installate non sono compatibili con il python a 32 bit. Qualcosa è molto rotto in questo programma di installazione.

Quindi, in sintesi, di file il mio lavoro reg per Python 3.5 W32 assomiglia a questo:

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

Funziona su Windows 7 e Windows 10 utilizzando Python 3.5 quando si utilizza l'eseguibile a 32 bit. Grazie. –

+0

Questo problema è stato corretto in Python 3.5.1 ([Numero # 26071] (https://bugs.python.org/26071)). – Cito

+0

Bello! Funziona anche con Python 3.5 * 64-bit * su Windows 7 con Pywin32 2.2.0 (pywin32-220.win-amd64-py3.5.exe) –

3

Ho avuto lo stesso problema per le ultime Python36-32 in esecuzione su Windows 10 a 64 bit. Tutte le soluzioni sopra non funzionano per me quando installato per in modalità tutti gli utenti.

La risposta di Obu in alto ha quasi funzionato sostituendo da 3.5 a 3.6, quindi pywin32 è in grado di rilevare il percorso del registro ma non è ancora riuscito con il codice di errore can't create pywin32-wininst.log. Try to run as administrator. Basta interrompere l'installazione, quindi uscire anche se già eseguito come amministratore.

Dopo molte prove, ha risolto come di seguito:

  1. Prendere Obu's approach above, sostituendo versione 3.5 a 3.6.

  2. Registrarlo. cartella

  3. Rinomina installazione di default di python36-32, qualcosa di simile: C:\Program Files (x86)\Python36-32-C:\Program Files (x86)\Python36
  4. Esegui installazione pywin32 come amministratore.

* Scusa Non posso rispondere al commento qui a causa del limite di reputazione, quindi creo questa risposta per aiutare gli altri che hanno gli stessi problemi del mio.

+0

Funziona su Windows 10 usando Python 3.6 x86. Grazie. –

2

Ho avuto lo stesso problema su Windows 10 64 bit con Python 3.6. È installato per tutti gli utenti (suppongo che usi un hive del Registro di sistema diverso nel caso in cui sia installato solo per l'utente corrente).

Il problema era che pywin32-220.win32-py3.6.exe ricerche nel Registro di sistema per HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Python\PythonCore\3.6 mentre Python 3.6 installazione creato HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Python\PythonCore\3.6-32.

Nota i diversi finali! Esportare il registro 3.6-32 nel file .reg, modificare i percorsi su 3.6 e reimportare il registro dei file ha risolto il problema per me.

+0

E ho avuto il problema inverso. Il setup di Python 3.6 ha creato 'HKEY_LOCAL_MACHINE \ SOFTWARE \ Python \ PythonCore \ 3.6' mentre PyWin aveva bisogno di' HKEY_LOCAL_MACHINE \ SOFTWARE \ Python \ PythonCore \ 3.6-32'. Ho dovuto rinominare temporaneamente la chiave per far funzionare l'installazione. –

0

ero in una situazione simile, si tenta di installare pywin32 ma con un Winpython portatile installazione. Dopo un po 'di ricerca su google ho trovato un link a questo enorme repository di pacchetti nei contenitori .whl entro il Christoph Gohlke.

Scaricare il file ruote appropriato per la versione di Python, nel mio caso 3.6.1 su 32 bit, ed installarlo tramite pip:

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

pywin32 costruire 219 ha un problema che sembra per il python 3.5 Percorso di installazione a 32 bit nella chiave di registro errata. Questo problema è stato risolto nelle versioni successive di pywin32 - 220 e 221 sono quelle che ho provato - e trovano correttamente la posizione di installazione di Python nel registro. È possibile visualizzare il ticket pywin32 here.

Se è necessaria la build 219, è possibile rinominare temporaneamente la voce di registro.

Installa python per tutti gli utenti sul mio PC, quindi le voci di registro sulla mia macchina sono in HKEY_LOCAL_MACHINE. Se si installa python per utente, le voci del registro saranno in HKEY_CURRENT_USER. Inoltre, il mio oggetto COM è a 32 bit, quindi usiamo Python a 32 bit.

Le voci del registro python a 32 bit si trovano su: \SOFTWARE\Wow6432Node\Python\PythonCore.

Le voci del registro python a 64 bit si trovano su: \SOFTWARE\Python\PythonCore.

Nel mio caso, ho avuto due voci che hanno dovuto essere temporaneamente rinominato:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\3.5 

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\3.5-32 
luogo di installazione

Il pitone si trova nella chiave InstallPath, che sulla mia macchina e ':

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

La mia cartella \PythonCore\3.5 ha solo la chiave \Help\Pythonwin Reference, che è duplicata nella cartella \PythonCore\3.5-32, quindi penso che questa chiave sia lasciata da qualche installazione precedente e non più rilevante. Tuttavia, non ho optare per eliminarlo, e io temporaneamente rinominato sia come segue:

Da:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\3.5 

A:

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

Da:

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

Per :

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\3.5 

Una volta completata l'installazione di pywin32 build 219, ho ripristinato le chiavi con i nomi originali.

Problemi correlati