Python ha un pacchetto win32service
che sembra consentire la creazione del servizio Windows. Ho accuratamente controllati disponibili esempi di Google, ad esempio questo: Is it possible to run a Python script as a service in Windows? If possible, how?È possibile scrivere un servizio Windows usando Python?
ho messo il codice in ~/Documents/test.py
ed eseguito in seguito sotto il prompt dei comandi con privilegi elevati:
> python test.py install
> python test.py debug
Purtroppo, ogni esempio ho provato a mancare con l'errore:
Debugging service TestService - press Ctrl+C to stop.
Error 0xC0000005 - Python could find the service class in the module
AttributeError: 'module' object has no attribute 'AppServerSvc'
(null): (null)
ho provato con l'ultima versione di ActivePython (2.7.2.5 32-bit) su Windows 7 a 64-bit e Windows 8 a 64 bit. Ovviamente, se il servizio viene avviato manualmente tramite il gestore servizi, non verrà avviato neanche.
Sto facendo qualcosa di sbagliato o Python non è destinato ad essere utilizzato per la creazione di servizi su sistemi operativi moderni? Forse ho bisogno di una versione specifica di Windows/Python/Pywin32? Naturalmente, posso testare manualmente tutte le combinazioni a partire da Windows XP ma ci vorrà molto tempo :(. Forse qualcuno ha già esperienza con Python e Windows e mi può suggerire cosa sto facendo male?
aggiornamento
testato su Windows XP a 32 bit macine virtuale (stesso codice, stessa distribuzione ActivePython) -. stesso errore
Sono quasi certo che l'errore che si ottiene è un errore di codifica banale relativo alle posizioni dei moduli. Per favore pubblica un [esempio riproducibile] (http://sscce.org) del codice che inizializza 'AppServerSvc'. Inoltre, la risposta ovvia al titolo è sì, e puoi persino collegarti al duplicato. – phihag
@phihag Ho inviato la riga di comando usata per riprodurre il problema e completare il codice sorgente insieme alla versione del sistema operativo. Quali altre informazioni pensi siano necessarie per "esempio riproducibile"? – grigoryvp
Un esempio riproducibile è il codice completo che chiunque può eseguire, beh, * riproduce * il tuo problema (cioè abbastanza codice in modo che * I * possa digitare 'python test.py debug').Nel tuo caso, è almeno 'test.py', oltre al file in cui è stato memorizzato il' class AppServerSvc' definito. – phihag