import win32api funktioniert nicht, obwohl im Modulsuchpfad?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
odolth
User
Beiträge: 3
Registriert: Donnerstag 8. April 2010, 11:36

Donnerstag 8. April 2010, 12:48

Ich habe einen neuen Rechner, also Python (programmiere noch mit 2.5) wieder neu installiert. Ein Programm, welches vorher funktionierte, geht jetzt nicht mehr. Und zwar liegt das daran, dass es Probleme mit dem Import von win32api gibt.

Ich habe den relevanten Code in eine neue Datei geschrieben und konnte das Problem damit reproduzieren:

Inhalt der Datei test.py:

Code: Alles auswählen

import sys
print sys.path
import win32api
Beim Ausführen obiger Datei mit
"C:/Program Files/Python252/pythonw.exe" -u -O "test.py"

Kommt die Fehlermeldung in separatem Fenster (Roter Kreis mit weißem Kreuz):
Titel: "pythonw.exe - Komponente nicht gefunden"
Text: "Die Anwendung konnte nicht gestartet werden, weil pywintypes25.dll nicht gefunden wurde. Neuinstallation der Anwendung könnte das Problem beheben."

Im Interpreterfenster steht:
..." 'C:\\WINDOWS\\system32\\python25.zip', 'C:\\Program Files\\Python252\\DLLs', 'C:\\Program Files\\Python252\\lib', 'C:\\Program Files\\Python252\\lib\\plat-win', 'C:\\Program Files\\Python252\\lib\\lib-tk', 'C:\\Program Files\\Python252', 'C:\\Program Files\\Python252\\lib\\site-packages', 'C:\\Program Files\\Python252\\lib\\site-packages\\win32', 'C:\\Program Files\\Python252\\lib\\site-packages\\win32\\lib', 'C:\\Program Files\\Python252\\lib\\site-packages\\Pythonwin', 'C:\\Program Files\\Python252\\lib\\site-packages\\wx-2.8-msw-unicode']

Traceback (most recent call last):
File "test.py", line 3, in <module>
import win32api
ImportError: DLL load failed: Das angegebene Modul wurde nicht gefunden.
>Exit code: 1"

In der Ausgabe zum Modulsuchpfad (siehe oben) steht unter anderem der Pfad "C:\\Program Files\\Python252". Hier und an der Stelle "C:\Program Files\Python252\Lib\site-packages\pywin32_system32" liegt aber die Datei "pywintypes25.dll". Und trotzdem wird sie nicht gefunden!.

Das mit der Neuinstallation habe ich schon probiert. Leider nichts...

Wenn ich die Datei "pywintypes25.dll" aber in den Ordner kopiere, in dem sich "test.py" befindet, dann funktioniert der Import.

Kann mir hier einer bitte weiter helfen? Ich verstehe das nicht...
Vielen Dank für jeden Tipp!
Benutzeravatar
/me
User
Beiträge: 3212
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Donnerstag 8. April 2010, 13:14

odolth hat geschrieben:In der Ausgabe zum Modulsuchpfad (siehe oben) steht unter anderem der Pfad "C:\\Program Files\\Python252". Hier und an der Stelle "C:\Program Files\Python252\Lib\site-packages\pywin32_system32" liegt aber die Datei "pywintypes25.dll". Und trotzdem wird sie nicht gefunden!.

Das mit der Neuinstallation habe ich schon probiert. Leider nichts...

Wenn ich die Datei "pywintypes25.dll" aber in den Ordner kopiere, in dem sich "test.py" befindet, dann funktioniert der Import.
Ich kenne mich mit win32api nicht aus und habe gerade (extra für dich) zum ersten Mal eine Installation damit durchgeführt.

Dabei ist mir aufgefallen, dass pywintypes2x.dll und pythoncom2x.dll ins Systemverzeichnis von Windows kopiert wurden. Für mich legt das in Verbindung mit der von dir beschriebenen Fehlermeldung den Schluss nahe, dass diese Dateien im Suchpfad für Windows-Executables (PATH) gesucht werden und nicht im Suchpfad für Python-Module.

Wie hast du pywin32 denn installiert, so dass das bei dir anders aussieht?
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

Donnerstag 8. April 2010, 14:23

Installiere mal in einen Pfad ohne Leerzeichen. Also so etwas wie c:\Python25 oder ähnliches. Python 2.5.2 ist total veraltet und sollte zumindest durch die aktuelle Version der 2.5 (oder 2.6) ersetzt werden.
odolth
User
Beiträge: 3
Registriert: Donnerstag 8. April 2010, 11:36

Mittwoch 14. April 2010, 09:14

/me hat geschrieben: Ich kenne mich mit win32api nicht aus und habe gerade (extra für dich) zum ersten Mal eine Installation damit durchgeführt.

Dabei ist mir aufgefallen, dass pywintypes2x.dll und pythoncom2x.dll ins Systemverzeichnis von Windows kopiert wurden. Für mich legt das in Verbindung mit der von dir beschriebenen Fehlermeldung den Schluss nahe, dass diese Dateien im Suchpfad für Windows-Executables (PATH) gesucht werden und nicht im Suchpfad für Python-Module.

Wie hast du pywin32 denn installiert, so dass das bei dir anders aussieht?
Hallo /me, ich habe als lokaler Administrator auf WinXP, nachdem ich Python 2.5.2 installiert habe, mit
pywin32-210.win32-py2.5.exe
von http://sourceforge.net/projects/pywin32/files/ die Installation durchgeführt.

Gerade habe ich noch einmal eine Suche nach
pywintypes25.dll
auf der gesamten C-Partition durchgeführt. Die Datei liegt bei mir tatsächlich nur in Ordnern unter
C:\Program Files
.

Der Suchpfad für Windows-Executables (PATH) enthält die Ordner meiner Python-Installation nicht.

Gerade habe ich zum PATH den Ordner meiner Python Installation
C:\Program Files\Python252
hinzugefügt und dann funktioniert der Aufruf wieder.

Die Frage ist nur, warum der Pfad nicht schon bei der Installation hinzugefügt wurde... . Aber mein Problem ist somit gelöst. Vielen Dank!
odolth
User
Beiträge: 3
Registriert: Donnerstag 8. April 2010, 11:36

Mittwoch 14. April 2010, 09:30

mkesper hat geschrieben:Installiere mal in einen Pfad ohne Leerzeichen. Also so etwas wie c:\Python25 oder ähnliches. Python 2.5.2 ist total veraltet und sollte zumindest durch die aktuelle Version der 2.5 (oder 2.6) ersetzt werden.
Hallo mkesper, liegt es am Pfad mit Leerzeichen
c:\Program Files
, dass bei der Installation der Windows-Path nicht ergänzt wird?

Ich kann jedenfalls nur sagen, dass wir "meine Installation" schon auf mehreren Rechnern durchgeführt haben, aber dieses Problem erst dieses Mal aufgetreten ist. Vielleicht habe ich aber auch eine leicht unterschiedliche Vorgangsweise (andere Reihenfolge Installation Site-Packages oder dgl.) gewählt.

Vielen Dank für die Rückmeldung!
Antworten