Ich versuche pywin32 für Python 2.6 zu installieren. Ich habe Python installiert, aber es ist nicht in der regulären c: Laufwerk, sondern auf dem Laufwerk d:. Das pywin32-Installationsprogramm findet es nicht und ich kann den benutzerdefinierten Pfad nicht angeben.
Ich habe überprüft, derpython-Ordner ist der Pfad. Gibt es eine Umgehungsmöglichkeit für dieses Problem?
Aus der pywin32 README
Wenn der Installationsprozess Sie darüber informiert, dass Python nicht in der Registrierung, bedeutet es fast sicher, dass Sie die falsche Version heruntergeladen haben - entweder für die falsche Version von Python oder die falsche "Bitterkeit".
Sind Sie sicher, dass Sie die richtige Version für Ihre Python und Ihre CPU-Architektur haben? Wenn Sie das getan haben und das nicht funktioniert haben, könnten Sie versuchen, aus der Quelle zu bauen. Ich denke, es könnte ein Befehlszeilen-Flag geben, mit dem Sie den Python-Installationsort angeben können.
Update 2017-06-14 Scheint so, als ob mit Python 3.6 das gleiche Problem erneut aufgetreten wäre. Aber ich habe einen netten Vorschlag gefunden: Es gibt eine Pip-Version von pywin32: Benutze einfach
pip install pypiwin32
Es hat nicht die neueste Version installiert (Sourceforge hat zur Zeit 221, es hat 220 installiert), aber es hat ohne Registrierungsänderungen oder andere Hacks funktioniert.
Update 2017-02-01: Ich habe gerade versucht, die Installation von Build 220 mit Python 3.5.2 32 Bit auf Windows 10 (64 Bit), und alles hat gut funktioniert, ohne und muss die Registrierung ändern. Der beste Rat könnte also sein, den neuesten Build anstelle von Build 219 zu verwenden.
Alte Lösung (Build 219):
Ich bin heute auf dasselbe Problem gestoßen, als ich versucht habe, pywin32 zusammen mit Python 3.5 win32 unter Windows 8.1 zu installieren.
Alle Installer (Build 219) für py 3.5 sind fehlgeschlagen, und das Ändern der Registrierung, wie in den Posts von Jesus Flores und Lauren alsina beschrieben, hat das Problem nicht gelöst.
Was war der Trick für mich, die Registrierungseinträge nicht in HKEY_LOCAL_MACHINE
hinzuzufügen, aber in HKEY_CURRENT_USER
und ändern Sie die Python-Version in PythonCore
von 3.5-32
in 3.5
.
Interessanterweise funktioniert das 64-Bit-Installationsprogramm mit dem 3.5-32
-Schlüssel, aber Sie werden natürlich Probleme bekommen, weil die installierten 64-Bit-Bibliotheken nicht mit dem 32-Bit-Python kompatibel sind. In diesem Installer ist etwas sehr kaputt.
Also zusammenfassend sieht meine Arbeit .reg-Datei für Python 3.5 w32 wie folgt aus:
%Vor%Ich hatte das gleiche Problem:
Unter 64-Bit-Windows werden 32-Bit-Apps unter:
registriert[1] HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Python
Ich rechne damit, dass der Installer Python erwartet:
[2] HKEY_LOCAL_MACHINE \ SOFTWARE \ Python
Mit regedit und lokalen Administratorrechten können Sie eine .reg-Datei von [1] exportieren, alle gefundenen "Wow6432Node \" entfernen und sie dann als [2] importieren
Ich hatte das gleiche Problem für das neueste Python36-32 unter Windows 10 64 Bit. Alle obigen Lösungen funktionierten für mich nicht, wenn sie für den all users mode installiert wurden.
Obus obige Antwort hat fast funktioniert, indem wir 3.5 bis 3.6 ersetzt haben, dann kann pywin32 den Registrierungspfad erkennen, aber es ist immer noch mit dem Fehlercode can't create pywin32-wininst.log. Try to run as administrator
fehlgeschlagen. Es stoppt einfach die Installation und beendet es, obwohl es bereits als Administrator ausgeführt wurde.
Nach vielen Versuchen löste es sich wie folgt:
Nehmen Sie Obus Ansatz oben und ersetzen Sie die Version 3.5 von 3.6.
Registrieren Sie es.
C:\Program Files (x86)\Python36-32
to C:\Program Files (x86)\Python36
* Entschuldigung, ich kann hier keine Antwort geben, da ich die Reputationsgrenze kenne, also erstelle ich diese Antwort, um anderen zu helfen, die die gleichen Probleme haben wie ich.
Ich hatte das gleiche Problem auf Windows 10 64 Bit mit Python 3.6. Es ist für alle Benutzer installiert (ich denke, es verwendet eine andere Registrierungsstruktur, falls es nur für den aktuellen Benutzer installiert ist).
Das Problem war, dass pywin32-220.win32-py3.6.exe in der Registrierung nach HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Python\PythonCore.6
sucht, während Python 3.6-Setup HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Python\PythonCore.6-32
erstellt hat.
Beachten Sie die verschiedenen Endungen! Das Exportieren der 3.6-32
-Registry in die .reg
-Datei, das Ändern der Pfade zu 3.6
und das erneute Importieren der Dateiregistrierung haben das Problem für mich behoben.
1) Erstellen Sie eine Textdatei mit folgendem Inhalt:
%Vor%2) Ersetzen Sie C: \\ Python34 part mit dem Pfad, den Sie python installiert haben.
3) Speichern Sie die Datei als * .reg
4) Führen Sie die Datei mit der Registrierung zu kombinieren.
Habe es gerade getestet, um pywin32 zu installieren und es funktioniert!
Ich war in einer ähnlichen Situation und versuchte pywin32 zu installieren, aber mit einer Winpython portablen Installation. Nach langem googeln habe ich einen Link zu diesem riesigen Repository von Paketen in .whl
bins von Christoph Gohlke gefunden .
Lade die entsprechende Wheel-Datei für deine Python-Version herunter, in meinem Fall 3.6.1 auf 32bit, und installiere sie über pip :
%Vor%pywin32 build 219 hat ein Problem darin, dass es nach dem Python 3.5 32 Bit Installationsort im falschen Registrierungsschlüssel sucht. Dieses Problem ist in späteren pywin32-Builds behoben - 220 und 221 sind die, die ich ausprobiert habe - und sie finden den Python-Installationsort korrekt in der Registrierung. Sie können das pywin32-Ticket hier sehen.
Wenn Sie Build 219 benötigen, können Sie den Registrierungseintrag vorübergehend umbenennen.
Ich installiere Python für alle Benutzer auf meinem PC, so dass die Registrierungseinträge auf meinem Rechner in HKEY_LOCAL_MACHINE
sind. Wenn Sie Python pro Benutzer installieren, befinden sich die Registrierungseinträge in HKEY_CURRENT_USER
. Außerdem ist mein COM-Objekt 32-Bit, also verwenden wir das 32-Bit-Python.
Die 32-Bit-Python-Registrierungseinträge befinden sich unter: \SOFTWARE\Wow6432Node\Python\PythonCore
.
Die 64-Bit-Python-Registrierungseinträge befinden sich unter:
\SOFTWARE\Python\PythonCore
.
In meinem Fall hatte ich zwei Einträge, die vorübergehend umbenannt werden mussten:
%Vor% Der Python-Installationsort befindet sich in der InstallPath
-Schlüssel, die sich auf meinem Rechner befindet:
Mein \PythonCore.5
Ordner hat nur den Schlüssel \Help\Pythonwin Reference
, der im Ordner \PythonCore.5-32
dupliziert ist. Daher denke ich, dass dieser Schlüssel von einer früheren Installation übrig ist und nicht mehr relevant ist. Allerdings habe ich mich nicht dafür entschieden, es zu löschen, und ich habe beide vorläufig wie folgt umbenannt:
Von:
%Vor%An:
%Vor%Von:
%Vor%An:
%Vor%Sobald die Installation von pywin32 build 219 abgeschlossen war, habe ich die Schlüssel wieder auf die ursprünglichen Namen zurückgesetzt.