[[oktatas:programozás:python|< Python]] ====== Python program telepítő ====== * **Szerző:** Sallai András * Copyright (c) 2020, Sallai András * Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC BY-SA 4.0]] * Web: https://szit.hu ===== Telepítő ===== A felhasználók általában nem értenek parancssorhoz, mi is szeretnénk, ha egy egyszerű telepítő vagy másolás megoldaná a programunk használatbavételét. A telepítőkészítést két lépésben fogjuk megoldani. * Egyetlen csomagba szervezés * Telepítő készítése Először egyetlen csomagba szervezzük a programot, úgy, hogy Python futtató se kelljen hozzá. Ezt a [[https://pyinstaller.readthedocs.io/en/stable/index.html|PyInstaller]] modullal fogjuk elvégezni. Telepítőt, amely indítómenübe, vagy asztalra kitesz egy indító ikont, az [[https://jrsoftware.org/isinfo.php|Inno Setup]] segítségével fogjuk elvégezni. ===== PyInstaller ===== Windowson is rendszergazdaként Telepítsük a pyinstaller-t: pip install pyinstaller vagy: pip3 install pyinstaller A legegyszerűbb eset, ha van egy futtatható Python program: programom.py pyinstaller programom.py Létrejön egy dist nevű könyvtár, amelyben megtaláljuk a futtatható programot. Ha **egyetlen fájlban** szeretnénk az egész programot: pyinstaller --onefile programom.py Ha program több fájlra van szétszedve, esetleg több könytárra, akkor is, csak az indító fájlt kell megjelölni a parancsban. projekt01/ |-controllers/ | `-Controller.py |-views/ | `-MainWindow.py `-App.py pyinstaller --onefile App.py ==== Konzol nélkül ==== Ha konzolos ablak nélkül szeretnénk indítani a Python programot, például grafikus felület esetén: pyinstaller --onefile --windowed programom.py Vagy: pyinstaller --onefile --noconsole programom.py ==== Linuxon Windowsra ==== * https://github.com/cdrx/docker-pyinstaller ===== Inno Setup ===== Készítsük el az Inno Setup konfigurációs állományt: [Setup] AppName=Programnev AppVersion=1.0 DefaultDirName={autopf}\Programnev OutputBaseFilename=ProgramnevSetup LicenseFile=licenc.txt [Files] Source: program.exe; DestDir: "{app}" * LicenseFile * A licenc fájl neve és elérési útvonala * A fájl kódolása iso-8859-2 legyen Windowson ezt lehet az Inno Setup varázslójával, vagy egy szövegszerkesztővel. Ezt követően Windowson Inno Setup-al fordítsuk le a az elkészült konfigurációs fájl. Linuxon, használhatjuk mondjuk egy docker konténert a fordításhoz: docker run --rm -i -v "$PWD:/work" amake/innosetup program.iss ==== Fordítás ==== {{:oktatas:programozas:python:inno_setup.png|}} ==== Minden is ==== #define MyAppName "Első" #define MyAppExeName "elso.exe" [Setup] AppName=elso AppVersion=1.0 DefaultDirName={autopf}\Elso OutputBaseFilename=ElsoSetup LicenseFile=licenc.txt InfoBeforeFile=olvasd.txt DefaultGroupName={#MyAppName} [Files] Source: dist\elso.exe; DestDir: "{app}" [Tasks] ; Asztali ikon Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked [Run] ; Telepítés után futtatás Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent [Icons] ; Startmenü Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}" Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon ===== Lásd még ===== * https://pyinstaller.readthedocs.io/en/stable/index.html (2020) * https://winpython.github.io/ (2020) * https://pypi.org/project/setuptools/ (2020) * https://www.pythonforthelab.com/blog/how-create-setup-file-your-project/ (2020)