win32 extensions ohne Installation nutzen

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.
Benutzeravatar
smuerf
User
Beiträge: 3
Registriert: Donnerstag 29. November 2007, 11:08
Wohnort: Chemnitz

win32 extensions ohne Installation nutzen

Beitragvon smuerf » Dienstag 15. Januar 2008, 14:36

Halli Hallo

Ich habe da ein spezielles Problem. Ich möchte gern ein Programm schreiben, welches Module auch ohne Installation benutzen kann. Die Intention ist, dass ich das Programm dann z.B. auf nen USB-Stick packen kann und ich kann es dann überall verwenden, vorausgesetzt es handelt sich um Windows-Rechner auf denen Python installiert ist.

Bei den meisten Modulen funktioniert das auch recht gut. Ich kopiere sie einfach aus dem "site-packages"-Verzeichnis heraus und füge sie in meine Verzeichnisstruktur ein. Eventuell muss ich dann noch eine __init__.py schreiben, aber das funktioniert.

Anders sieht die Sache bei den win32extensions aus. Ich sehe da nicht durch was dort passiert. Da gibt es ja auch noch die Datei "pythoncom.py" im "site-packages"-Verzeichnis. Wofür ist die gut? Wann wird sie ausgeführt? Ich bin genauso vorgegangen wie immer, einfach alles rüber kopiert und dann die Pfade:
win32
win32\lib
pythonwin

in den Python-Path übernommen. Nun ja, zuerst funktionierte nix. Irgendwie fehlten da noch die DLLs. Also habe ich die Datei "win32\lib\pywintypes.py" angepasst und dort die Pfade für die DLLs geändert, so dass sie jetzt aus dem Verzeichnis "pywin32_system32" verwendet werden. Das scheint auch zu funktionieren.
Jetzt kreierte ich einen Dienst wie in http://www.python-forum.de/topic-8422.html beschrieben.
Nun kommt der Fehler:

Code: Alles auswählen

class Win32Service(win32serviceutil.ServiceFramework):

Code: Alles auswählen

AttributeError: 'module' object has no attribute 'ServiceFramework'

Tja offensichtlich ist es nicht so einfach :( Das Modul "win32serviceutil" befindet sich im Python-Path, den habe ich über ne "__init__.py" hinzugefügt.
Kann da jemand was dazu sagen? Hat jemand selbst schonmal sowas versucht?

Viele Grüße
Angenommen wir würfeln das Ergebnis aus:
Welche Güte können wir dabei erreichen? ;-)

Wer ist online?

Mitglieder in diesem Forum: noisefloor, pillmuncher