Python je jedním z nejoblíbenějších programovacích jazyků se širokými možnostmi. Tento interpretovaný jazyk poskytuje mnoho vývojových nástrojů, včetně možnosti vytvářet vlastní služby. Pokud chcete spustit skript na Windows, aby fungoval jako služba, nabízíme vám podrobného průvodce.
Existuje několik způsobů, jak vytvořit služby ve Windows pomocí Pythonu. Jedním z nejoblíbenějších nástrojů je modul pywin32, který poskytuje různé funkce pro správu služeb Windows. Tento modul Vám umožňuje vytvářet, spouštět, zastavovat a mazat služby, aniž byste museli používat složitý kód.
Nejprve budete muset nainstalovat modul pywin32 pomocí Správce balíčku pip. Poté můžete v Pythonu vytvořit nový skript, který bude fungovat jako služba. V tomto skriptu byste měli definovat funkce pro spuštění a zastavení služby a přidat potřebný kód pro provádění vašich úkolů.
Můžete si například vytvořit službu, která pravidelně zálohuje vaše soubory nebo odesílá upozornění na e-mail. Musíte definovat funkci, která bude tyto úkoly plnit, a vyvolat ji ve skriptu, který bude fungovat jako služba.
Jakmile identifikujete funkce pro spuštění a zastavení služby, můžete ji zaregistrovat pomocí modulu pywin32. Registrovaná služba se objeví v seznamu služeb systému Windows a můžete ji snadno spravovat, aniž byste se museli přihlašovat do počítače pokaždé, když potřebujete službu spustit nebo zastavit.
Instalace a konfigurace Pythonu na Windows
Chcete-li spustit Python jako službu na Windows, musíte nejprve nainstalovat Python do počítače.
Krok 1: Stažení Pythonu
Přejděte na oficiální stránku Pythonu na https://www.python.org/downloads/windows / a stáhněte si instalační program Python pro Windows.
Krok 2: spuštění instalačního programu
Jakmile je instalační program Pythonu stažen,poklepejte na něj a spusťte proces instalace.
Krok 3: Výběr nastavení instalačního programu
Během instalace, budete mít možnost vybrat různé možnosti nastavení. Nejvíce doporučené možnosti jsou:
| Přidat Python do proměnné prostředí PATH | Umožňuje používat Python z příkazového řádku a spouštět skripty Pythonu z libovolného adresáře. |
| Customize installation | Umožňuje konfigurovat další možnosti, jako je výběr instalačního adresáře a instalace dalších modulů. |
Krok 4: Dokončení instalace
Po výběru nastavení klikněte na tlačítko "Instalovat" (nainstalovat) pro spuštění procesu instalace Pythonu. Počkejte na dokončení instalace.
Nyní, po dokončení instalace Pythonu, můžete přejít na Nastavení Pythonu jako služby na Windows.
Stažení a instalace Pythonu
- Otevřete webový prohlížeč a přejděte na oficiální stránku Pythonu - https://www.python.org/.
- Na domovské stránce vyhledejte a klikněte na tlačítko" Downloads " v horní nabídce.
- Máte na výběr mezi dvěma verzemi Pythonu: Python 2 a Python 3. Doporučuje se používat nejnovější verzi - Python 3, protože obsahuje novější možnosti a vylepšení. Klikněte na příslušné logo pro stažení Pythonu 3.
- Po výběru verze Pythonu přejdete na stránku stahování. Přejděte dolů na stránku a vyhledejte sekci "Files". Zde se zobrazí dostupné verze Pythonu ke stažení. Vyberte nejnovější stabilní verzi Pythonu a klikněte na odkaz ke stažení.
- Budete vyzváni k výběru bitů Pythonu v závislosti na vašem operačním systému. Pokud má váš operační systém 64 bitů, vyberte "Windows x86-64 executable installer". Pokud máte 32bitový systém, vyberte "Windows x86 executable installer".
- Soubor pro stažení Pythonu bude uložen do vašeho počítače. Poklepáním na tento soubor spusťte instalační program Python.
- Během procesu instalace budete mít možnost nakonfigurovat některá nastavení instalace. Ve výchozím nastavení se doporučuje ponechat všechny možnosti beze změny.
- Po dokončení instalace obdržíte zprávu, která ukazuje na úspěšné provedení instalace Pythonu.
Nyní máte v počítači nainstalovaný Python. V další části se podíváme na to, jak nakonfigurovat prostředí pro spouštění skriptů Python jako služby ve Windows.
Nastavení proměnných prostředí
Před spuštěním služby Python ve Windows je nutné nakonfigurovat proměnné prostředí, aby operační systém věděl, kde hledat spustitelný soubor Pythonu. To umožní vyvolat program Python z libovolného adresáře, aniž byste zadali úplnou cestu k spustitelnému souboru.
Chcete-li upravit proměnné prostředí, postupujte podle těchto kroků:
- Otevřete Ovládací panely a vyhledejte sekci Systém.
- V části Systém vyberte Pokročilé možnosti systému.
- V okně, které se otevře, klikněte na tlačítko"proměnné prostředí".
- V sekci proměnné prostředí vyhledejte proměnnou "Path" a vyberte ji.
- Klikněte na tlačítko Upravit a přidejte cestu do adresáře, kde je Python nainstalován, do proměnné" Path". Například pokud je Python nainstalován v adresáři "C:\Python\Python39", přidejte "C:\Python\Python39" seznam cest.
- Po přidání cesty klikněte na OK ve všech otevřených oknech pro uložení změn.
- Nyní budete moci spouštět programy Pythonu z libovolného adresáře v počítači, aniž byste zadali úplnou cestu k spustitelnému souboru.
Zkontrolujte správné nastavení proměnných prostředí otevřením příkazového řádku a zadáním příkazu "python". Pokud se Python spustí bez chyb, pak jsou proměnné prostředí správně nakonfigurovány.
Vytvoření jednoduché Python služby
Chcete-li vytvořit jednoduchou službu Python ve Windows, použijeme modul Python win32service . Zde je návod, jak vytvořit jednoduchou službu pro provádění úkolů podle plánu:
- Vytvořte nový soubor service.py a otevřete jej ve svém oblíbeném textovém editoru.
- Importujte potřebné moduly:
import socketimport timeimport win32serviceimport win32eventimport win32serviceutilimport servicemanagerimport sys
- Definujte třídu Service (win32serviceutil.ServiceFramework), který bude vaší službou:
class Service(win32serviceutil.ServiceFramework):_svc_name_ = 'PythonService'_svc_display_name_ = 'Python Service'def __init__(self, args):win32serviceutil.ServiceFramework.__init__(self, args)self.hWaitStop = win32event.CreateEvent(None, 0, 0, None)socket.setdefaulttimeout(60)self.is_alive = Truedef SvcStop(self):self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)win32event.SetEvent(self.hWaitStop)self.is_alive = Falsedef SvcDoRun(self):servicemanager.LogMsg(servicemanager.EVENTLOG_INFORMATION_TYPE,servicemanager.PYS_SERVICE_STARTED,(self._svc_name_, ''))self.main()def main(self):# Здесь вы можете разместить свою логику сервисаwhile self.is_alive:# Ваш кодtime.sleep(5)
- Chcete-li vytvořit službu, přidejte na konec souboru následující kód:
if __name__ == '__main__':if len(sys.argv) == 1:servicemanager.Initialize()servicemanager.PrepareToHostSingle(Service)servicemanager.StartServiceCtrlDispatcher()else:win32serviceutil.HandleCommandLine(Service)
Nyní uložte soubor service.py a zavřete ho.
Ke správě služby můžete použít příkazový řádek. Zde jsou některé základní příkazy:
- Instalace služby: python service.py install
- Smazat službu: python service.py remove
- Spustit službu: python service.py start
- Zastavit službu: python service.py stop
- Restartujte službu: python service.py restart
Gratuluji! Nyní máte jednoduchou službu Python, která může provádět úkoly podle plánu na Windows.
Psaní kódu pro službu
V této části najdete informace, Jak napsat kód pro spuštění skriptu Python jako služby ve Windows.
Než začnete, budete muset nainstalovat knihovnu `pywin32`, která vám umožní pracovat s Windows API z Pythonu. Můžete jej nainstalovat pomocí příkazu:
pip install pywin32
Po instalaci knihovny můžete začít vytvářet kód pro vaši službu.
Nejprve importujte potřebné moduly:
import win32serviceutil import servicemanager import win32event import win32service import socket import os
Dále vytvořte třídu pro svou službu, která bude dědičná ze třídy ' win32serviceutil.ServiceFramework`:
class MyService(win32serviceutil.ServiceFramework): _svc_name_ = 'MyService' _svc_display_name_ = 'My Service'
V metodě '_ _ init_` ' můžete nastavit požadované parametry pro spuštění služby. Můžete například nastavit adresář, ve kterém bude skript spuštěn:
def __init__(self, args): win32serviceutil.ServiceFramework.__init__(self, args) self.dir = os.path.dirname(os.path.realpath(__file__))
V roce 2010 se stal členem výboru pro mezinárodní spolupráci v oblasti ochrany životního prostředí.:
def svc_do_run (self): servicemanager.LogMsg (servicemanager.EVENTLOG_INFORMATION_TYPE, servicemanager.PYS_SERVICE_STARTED, (já._svc_name_,")) já.main () def svc_stop (self): servicemanager.LogMsg (servicemanager.EVENTLOG_INFORMATION_TYPE, servicemanager.PYS_SERVICE_STOPPED, (já._svc_name_,")) já.ReportServiceStatus (win32service.SERVICE_STOP_PENDING) win32event.SetEvent (vlastní.hWaitStop)
V metodě ' main` můžete zadat základní kód vaší služby:
def main (self): # váš kód
Nakonec přidejte na konec souboru další kód pro spuštění služby:
if __name__ == '__main__': if len(sys.argv) == 1: servicemanager.Initialize() servicemanager.PrepareToHostSingle(MyService) servicemanager.StartServiceCtrlDispatcher() else: win32serviceutil.HandleCommandLine(MyService)
Nyní můžete pomocí příkazu Spustit skript Python jako službu ve Windows:
python my_service.py install python my_service.py start
Služba bude spuštěna a spuštěna na pozadí. Ke správě služby můžete také použít příkazy `stop`, `restart` a `remove`. Pokud potřebujete zkontrolovat, zda služba funguje, můžete otevřít okno služby a najít službu v seznamu.