introduktion
udførelse af Python-scripts kræver mange forudsætninger som at have Python installeret, have en overflod af moduler installeret, bruge kommandolinjen osv. under udførelsen af en .exe
fil er meget ligetil.
hvis du vil oprette et simpelt program og distribuere det til mange brugere, er det ikke svært at skrive det som et kort Python-script, men antager, at brugerne ved, hvordan man kører scriptet og har Python allerede installeret på deres maskine.
eksempler som dette viser, at der er en gyldig grund til at konvertere .py
programmer til tilsvarende .exe
programmer på vinduer. .exe
står for “eksekverbar fil”, som også er kendt som en binær.
den mest populære måde at opnå dette på er ved at bruge py2exe
modulet. I denne artikel gennemgår vi hurtigt det grundlæggende i py2exe
og fejlfinder nogle almindelige problemer. For at følge med er der ikke behov for avanceret Python-viden, men du bliver nødt til at bruge vinduer.
konvertering af en fortolket sprogkode til en eksekverbar fil er en praksis, der almindeligvis kaldes frysning.
installation af py2ekse
for at bruge py2exe
modulet skal vi installere det. Lad os gøre det med pip
:
$ pip install py2exe
konvertering Python Script til .eks
lad os først skrive et program, der skal udskrive noget tekst til konsollen:
import mathprint("Hannibal ante Portas")print(factorial(4))
lad os køre følgende kommandoer i kommandolinjen vinduer for at oprette en mappe (exampDir
), flytte den kode, vi allerede skrev til nævnte mappe, og til sidst udføre den:
$ mkdir exampDir$ move example.py exampDir$ cd exampDir$ py example.py
dette skal output:
Hannibal ante Portas24
test altid scripts, før du gør dem til eksekverbare filer for at sikre, at hvis der er en fejl, er det ikke forårsaget af kildekoden.
Opsætning og konfiguration
lav en anden fil kaldet setup.py
i samme mappe. Her holder vi konfigurationsoplysninger om, hvordan vi vil kompilere vores program. Vi sætter bare et par linjer kode ind i det for nu:
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
hvis vi havde at gøre med en app med en grafisk brugergrænseflade, ville vi erstatte console
med windows
som sådan:
setup(windows=)
åbn nu Kommandoprompt som administrator og naviger til den mappe, vi lige har nævnt, og kør setup.py
filen:
$ cd exampDir$ python setup.py py2exerunning py2exe*** searching for required modules ****** parsing results ***...
dist folder
hvis alt er gjort korrekt, skal dette producere en undermappe kaldet dist
. Inde i det vil der være et par forskellige filer afhængigt af dit program, og en af dem skal være example.exe
. For at udføre det fra konsollen køre:
$ example
og du vil blive mødt af vores latinske citat, efterfulgt af værdien af 4!:
Hannibal ante Portas24
eller du kan dobbeltklikke på den, og den kører i konsollen.
hvis du vil samle alle filerne, skal du tilføje bundle_files
og compressed
og indstille zipfile
til ingen som sådan:
from distutils.core import setupimport py2exesetup( options = {'py2exe': {'bundle_files': 1, 'compressed': True}}, console = , zipfile = None,)
og re-køre kommandoer til at generere .eks fil.
nu kan dine slutbrugere køre dine scripts uden nogen viden eller forudsætninger installeret på deres lokale maskiner.
fejlfinding
fejl under konvertering .py
filer til .exe
filer er almindelige, så vi viser nogle almindelige fejl og løsninger.
Sådan repareres manglende DLL-s efter brug af py2ekse
et almindeligt problem med py2ekse mangler .dll
-s.
DLL står for “dynamic-link library”, og de er ikke der bare for at lave fejl, løfte. DLL ‘ er indeholder kode, data og ressourcer, som vores program muligvis har brug for under udførelsen.
efter at have kørt .exe
, hvis du får en systemfejl, der siger noget som:
The program can't start because something.dll is missing from your computer. Try reinstalling the program to fix this problem.
eller kommandolinjen siger:
ImportError: (DLL load failed: The specified module could not be found.)
løsningen er at finde den manglende .dll
og forbi den i din dist-mappe. Der er to måder at gøre dette på.
- Søg på din computer efter filen, og kopier den derefter. Dette vil arbejde det meste af tiden.
- Find den manglende
.dll
online og hent den. Prøv ikke at hente det fra nogle lyssky hjemmeside.
Sådan genereres 32/64-bit eksekverbare filer ved hjælp af py2ekse?
for at lave en 64-bit eksekverbar skal du installere 64 bit Python på din enhed. Det samme gælder for 32-bit versionen.
Sådan bruges py2ekse på Mac
py2exe
understøtter ikke på Mac, da det har til formål at oprette .et vindue-unikt format. Du kan hente en virtuel maskine på både Mac og Mac, bruge vin eller bruge et andet værktøj som Pyinstaller på Mac eller py2app på Mac.
konklusion
for at gøre Python-projekter lettere at køre på enheder, skal vi generere en eksekverbar fil. Vi kan bruge mange forskellige værktøjer, som f.eks.
binære filer kan bruge DLL-s, så sørg for at medtage dem med dit projekt.