Futtatható fájlok létrehozása Python szkriptekből a py2exe

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.

  1. 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.
  2. 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.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.

More: