Bevezetés
a Python szkriptek végrehajtása sok előfeltételt igényel, például a Python telepítését, a modulok sokaságát, a parancssor használatát stb. a .exe
fájl végrehajtása nagyon egyszerű.
ha egy egyszerű alkalmazást szeretnénk létrehozni, és sok felhasználónak terjeszteni, akkor rövid Python szkriptként írni nem nehéz, de feltételezzük, hogy a felhasználók tudják, hogyan kell futtatni a szkriptet, és a Python már telepítve van a gépükön.
az ehhez hasonló példák azt mutatják, hogy a .py
programokat megfelelő .exe
programokká kell konvertálni Windows rendszeren. .exe
jelentése “futtatható fájl”, amely más néven bináris.
ennek elérésének legnépszerűbb módja a py2exe
modul használata. Ebben a cikkben gyorsan áttekintjük a py2exe
alapjait, és elhárítunk néhány gyakori problémát. A követéshez nincs szükség speciális Python-ismeretekre, azonban a Windows-ot kell használnia.
az értelmezett nyelvi kód konvertálása végrehajtható fájlba egy olyan gyakorlat, amelyet általában fagyasztásnak neveznek.
a py2exe telepítése
a py2exe
modul használatához telepítenünk kell. Tegyük meg ezt pip
:
$ pip install py2exe
konvertálása Python Script .exe
először írjunk fel egy programot, amely szöveget fog nyomtatni a konzolra:
import mathprint("Hannibal ante Portas")print(factorial(4))
futtassuk a következő parancsokat a Windows parancssorában egy könyvtár létrehozásához (exampDir
), helyezzük át a már írt kódot az említett könyvtárba, végül hajtsuk végre:
$ mkdir exampDir$ move example.py exampDir$ cd exampDir$ py example.py
ennek ki kell adnia:
Hannibal ante Portas24
mindig tesztelje a szkripteket, mielőtt végrehajthatóvá tenné őket, hogy megbizonyosodjon arról, hogy ha hiba van, akkor azt nem a forráskód okozza.
Setup and Configuration
készítsen egy másik, setup.py
nevű fájlt ugyanabban a mappában. Itt fogjuk tartani konfigurációs részleteket, hogyan akarjuk lefordítani a programot. Most csak egy pár sor kódot teszünk bele:
from distutils.core import setup # Need this to handle modulesimport py2exe import math # We have to import all modules used in our programsetup(console=) # Calls setup function to indicate that we're dealing with a single console application
ha egy grafikus felhasználói felülettel rendelkező alkalmazással foglalkoznánk, akkor a console
– ot windows
– re cserélnénk:
setup(windows=)
most nyissa meg a parancssort rendszergazdaként, keresse meg az imént említett könyvtárat, majd futtassa a setup.py
fájlt:
$ cd exampDir$ python setup.py py2exerunning py2exe*** searching for required modules ****** parsing results ***...
dist mappa
ha minden helyesen történik, akkor ennek létre kell hoznia egy dist
nevű alkönyvtárat. Benne lesz néhány különböző fájl a programtól függően, és az egyiknek example.exe
– nak kell lennie. A konzol futtatásához:
$ example
és akkor köszöntötte a Latin idézet, majd az értéke 4!:
Hannibal ante Portas24
vagy kattintson rá duplán, és a konzolon fog futni.
ha össze szeretné csomagolni az összes fájlt, adja hozzá az bundle_files
és a compressed
értéket, és állítsa a zipfile
értéket úgy, hogy nincs:
from distutils.core import setupimport py2exesetup( options = {'py2exe': {'bundle_files': 1, 'compressed': True}}, console = , zipfile = None,)
majd futtassa újra a parancsokat, hogy létrehozzák a .exe fájl.
mostantól a végfelhasználók futtathatják a szkripteket a helyi gépeken telepített ismeretek vagy előfeltételek nélkül.
hibaelhárítás
gyakori hibák a .py
fájlok .exe
fájlokká történő konvertálásakor, ezért felsorolunk néhány gyakori hibát és megoldást.
a hiányzó DLL-ek javítása a py2exe használata után
a py2exe gyakori problémája hiányzik .dll
-s.
DLL jelentése “dynamic-link library”, és ők nem csak azért, hogy a hibákat, ígéret. A DLL-ek olyan kódokat, adatokat és erőforrásokat tartalmaznak, amelyekre a programunknak szüksége lehet a végrehajtás során.
a .exe
futtatása után, ha olyan rendszerhibát kap, amely valami ilyesmit mond:
The program can't start because something.dll is missing from your computer. Try reinstalling the program to fix this problem.
vagy a parancssor azt mondja:
ImportError: (DLL load failed: The specified module could not be found.)
a megoldás az, hogy megtalálja a hiányzó .dll
– et, és elhalasztja a dist mappába. Ennek két módja van.
- keresse meg a számítógépen a fájlt, majd másolja át. Ez az idő nagy részében működni fog.
- keresse meg a hiányzó
.dll
online és töltse le. Ne próbálja meg letölteni valamilyen árnyékos webhelyről.
hogyan lehet 32/64 bites futtatható fájlokat létrehozni a py2exe használatával?
64 bites futtatható fájl létrehozásához telepítse a 64 bites Pythont a készülékére. Ugyanez vonatkozik a 32 bites verzióra is.
hogyan kell használni py2exe Linux vagy Mac
py2exe
nem támogatja a Linux vagy Mac, mivel célja, hogy hozzon létre .exe fájlok, amelyek egy Windows-egyedi formátumban. Letölthet egy Windows virtuális gépet mind Mac, mind Linux rendszeren, használhatja a Wine-t, vagy használhat egy másik eszközt, például a Pyinstaller-t Linuxon, vagy a py2app-ot Mac-en.
következtetés
ahhoz, hogy a Python projektek könnyebben futtathatók legyenek Windows eszközökön, létre kell hoznunk egy futtatható fájlt. Számos különböző eszközt használhatunk, mint például a Pyinstaller, az auto-py-to-exe, a cx_Freeze és a py2exe.
a bináris fájlok DLL-s-t használhatnak, ezért feltétlenül vegye fel őket a projektbe.