Tartalomjegyzék

< Python

Python program telepítő

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.

Először egyetlen csomagba szervezzük a programot, úgy, hogy Python futtató se kelljen hozzá. Ezt a PyInstaller modullal fogjuk elvégezni.

Telepítőt, amely indítómenübe, vagy asztalra kitesz egy indító ikont, az 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

Inno Setup

Készítsük el az Inno Setup konfigurációs állományt:

program.iss
[Setup]
AppName=Programnev
AppVersion=1.0
DefaultDirName={autopf}\Programnev
OutputBaseFilename=ProgramnevSetup
LicenseFile=licenc.txt
 
[Files]
Source: program.exe; DestDir: "{app}"

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

Minden is

program.iss
#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