Seite 1 von 1

py2exe win32service und Windows Vista

Verfasst: Freitag 18. April 2008, 14:57
von droptix
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?

Verfasst: Freitag 18. April 2008, 15:18
von EyDu
Fehlermeldungen findest du unter Systemsteuerung->Verwaltung->Ereignisanzeige. Vielleicht kommst du damit schon mal weiter.

Verfasst: Freitag 18. April 2008, 17:58
von droptix
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.

.py geht, aber .exe geht immer noch nicht

Verfasst: Montag 21. April 2008, 09:23
von droptix
*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?

Re: .py geht, aber .exe geht immer noch nicht

Verfasst: Montag 21. April 2008, 09:38
von gerold
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
:-)

Verfasst: Montag 21. April 2008, 20:00
von Sr4l
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?

Verfasst: Dienstag 22. April 2008, 07:59
von droptix
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?