py2exe win32service und Windows Vista

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
droptix
User
Beiträge: 521
Registriert: Donnerstag 13. Oktober 2005, 21:27

Möchte einen simplen Windows-Dienst mit Python basteln und als .exe ausliefern. Bei py2exe ist ja sogar eine Beispieldatei dabei -> dann kann's ja losgehen!

Einziges Problem: Klappt super, aber nur auf XP (evtl. auch weitere), aber nicht auf Vista. Der Dienst lässt sich unter Vista installieren, jedoch nicht starten. Fehler:
Der Dienst reagiert auf die Kontrollfunktion nicht.

Sie erhalten weitere Hilfe, wenn Sie NET HELPMSG 2186 eingeben.
Dort gibt's dann aber keine weiteren Details. Konnte bislang nur die fertige .exe auf Vista testen, weil dort kein Python installiert ist (völlig nacktes Vista).

Hat jemand ne Idee, woran das liegen könnte und wie man das behebt?
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Fehlermeldungen findest du unter Systemsteuerung->Verwaltung->Ereignisanzeige. Vielleicht kommst du damit schon mal weiter.
droptix
User
Beiträge: 521
Registriert: Donnerstag 13. Oktober 2005, 21:27

Finde keinen entsprechenden Eintrag. Wenn ich unter "Dienste" den Dienst neu starten möchte, erscheint:
Der Dienst "The smallest possible Python Service" auf "Lokaler Computer" konnte nicht gestartet werden.

Fehler 1053: Der Dienst antwortete nicht rechtzeitig auf die Start- oder Steuerungsanforderung.
Ein andere Fehlermeldung also... wo genau finde ich im Vista-Ereignisprotokoll Fehlermeldungen von Diensten? Habe hier einige zur Auswahl: ich nehme an unter "Windows-Protokolle" (Anwendung, Sicherheit, Einrichtung, System, Weitergleitete Ereignisse). Die "Anwendungs- und Dienstprotokolle" scheinen nicht dafür da zu sein, obwohl sie erstmal danach klingen. Hab auch mal im Ereignisprotokoll nach "1053" gesucht, aber nix gefunden.

[Edit:] Hab hier was altes im System-Protokoll gefunden (aber nicht die Fehler, die gerade vor ein paar Minuten durch probiertes Starten des Dienstes erzeugt wurden). Weder aus den allgemeinen, noch aus den XML-Daten kann ich sinnvolle Infos gewinnen.
droptix
User
Beiträge: 521
Registriert: Donnerstag 13. Oktober 2005, 21:27

*push*

Hum, komme hier absolut nicht weiter. Vista blockiert total. Google sagt mir auch nix neues oder ich hab Tunnelblick und mir fehlen die richtigen Suchbegriffe...

Zur Info, wie ich überhaupt den Dienst unter Vista installiere:
  • - Eingabeaufforderung als Administrator starten
    - zum Verzeichnis meiner .exe springen
    - my.exe --startup auto install (klappt problemlos)
    - net start "The smallest possible Python Service" (besagter Fehler)
Ich hab nun auch mal Python 2.5 auf Vista installiert, um zu sehen ob es nur als .exe nicht geht oder auch als .py. Ergebnis: als .py geht's!

P.S. Als ich Python und die Win32-Extensions installiert hatte, erinnerte mich der PyWin32-Installer an die Datei "mfc71.dll", die mit Windows nicht ausgeliefert wird. Daher muss man die immer manuell runterladen und ins system32-Verzeichnis kopieren. Das tat ich dann auch, aber die .exe wollte immer noch nicht funktionieren. Dann hab ich versucht die DLL zu registrieren (regsvr32 C:\Windows\System32\mfc71.dll), aber es erschien folgender Fehler:
Windows Vista hat geschrieben:Das Modul c:\Windows\System32\mfc71.dll wurde geladen, aber der DllRegisterServer-Eingangspunkt wurde nicht gefunden. Stellen Sie sicher, dass c:\Windows\System32\mfc71.dll eine gültige .DLL oder .OCX-Datei ist, und wiederholen Sie den Vorgang.
Vielleicht liegt es an der fehlenden/nicht registrierten DLL? Ohne DLL dürfte aber die .py auch nicht funktionieren... oder braucht man die DLL nicht für Win32Services? Oder sollte die DLL in der .exe bereits gelinkt sein?
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

droptix hat geschrieben:mfc71.dll
Hallo droptix!

Die mfc71.dll muss nicht registriert werden. Die reine Anwesenheit genügt. Lege sie einfach in den Ordner der EXE mit rein. Aber zum Rest kann ich dir leider nichts sagen.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
Sr4l
User
Beiträge: 1091
Registriert: Donnerstag 28. Dezember 2006, 20:02
Wohnort: Kassel
Kontaktdaten:

Eine kleine Frage nebenbei:
Auf XP funktioniert, auf Vista nicht soweit ok.

Sind auf beiden Systemen Python (und ggf. Py2Exe) installiert?
Wurde die EXE auf XP mit Py2Exe erstellt und zum Vista Rechner kopiert?
droptix
User
Beiträge: 521
Registriert: Donnerstag 13. Oktober 2005, 21:27

Sr4l hat geschrieben:Sind auf beiden Systemen Python (und ggf. Py2Exe) installiert?
Wurde die EXE auf XP mit Py2Exe erstellt und zum Vista Rechner kopiert?
Erstellung unter Windows XP mit Python 2.5 und py2exe.

Dann 1:1 kopiert auf den Vista-Rechner. Im ersten Versuch war dort weder Python noch py2exe drauf, weil ich eine .exe auf Vista-PCs ohne Python verteilen möchte. Im zweiten Versuch hab ich auf Vista Python und py2exe nachinstalliert (inkl. der DLL), was auch nichts half.

Es wäre eine Idee, die .exe unter Vista zu backen.

[Edit:] Aha, unter Vista gebacken -> geht nun auch unter XP! Weiß jemand woran das liegen könnte?
Antworten