Het aanmaken van Uitvoerbare bestanden vanuit Python Scripts met py2exe

Inleiding

het uitvoeren van Python scripts vereist veel vereisten zoals het installeren van Python, het installeren van een overvloed aan modules, het gebruik van de opdrachtregel, enz. het uitvoeren van een .exe bestand is zeer eenvoudig.

als u een eenvoudige toepassing wilt maken en distribueren naar veel gebruikers, is het schrijven als een kort Python-script niet moeilijk, maar gaat ervan uit dat de gebruikers weten hoe ze het script moeten draaien en dat Python al op hun machine geïnstalleerd is.

voorbeelden zoals deze laten zien dat er een geldige reden is om .py programma ’s te converteren naar gelijkwaardige .exe programma’ s op Windows. .exe staat voor “Executable File”, wat ook bekend staat als een binair bestand.

de meest populaire manier om dit te bereiken is door gebruik te maken van de module py2exe. In dit artikel gaan we snel door de basis van py2exe en lossen we enkele veelvoorkomende problemen op. Om mee te volgen, is geen geavanceerde Python kennis nodig, maar je zult Windows moeten gebruiken.

het omzetten van een geà nterpreteerde taalcode naar een uitvoerbaar bestand is een praktijk die vaak bevriezing wordt genoemd.

py2exe

om de py2exe module te gebruiken, moeten we deze installeren. Laten we dat doen met pip:

$ pip install py2exe

Python-Script omzetten naar .exe

laten we eerst een programma schrijven dat wat tekst naar de console gaat afdrukken:

import mathprint("Hannibal ante Portas")print(factorial(4))

laten we de volgende commando ‘ s in de Windows opdrachtregel uitvoeren om een map te maken (exampDir), de code verplaatsen die we al hebben geschreven naar die map, en ten slotte, uitvoeren:

$ mkdir exampDir$ move example.py exampDir$ cd exampDir$ py example.py

dit moet uitvoer:

Hannibal ante Portas24

test altijd de scripts voordat ze worden omgezet in uitvoerbare bestanden om er zeker van te zijn dat als er een fout is, deze niet wordt veroorzaakt door de broncode.

Instellingen

Maak een ander bestand met de naam setup.py in dezelfde map. Hier bewaren we configuratiegegevens over hoe we ons programma willen compileren. We zullen er een paar regels code in doen voor 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

als we te maken hadden met een app met een grafische gebruikersinterface, zouden we console vervangen door windows :

setup(windows=)

open nu de opdrachtprompt als beheerder en navigeer naar de map die we zojuist hebben genoemd en voer het setup.py bestand uit:

$ cd exampDir$ python setup.py py2exerunning py2exe*** searching for required modules ****** parsing results ***...

dist map

als alles correct is gedaan, zou dit een submap moeten produceren met de naam dist. Er zitten een paar verschillende bestanden in, afhankelijk van je programma, en een daarvan zou example.exemoeten zijn. Om het uit te voeren vanaf de console Uitvoeren:

$ example

en je wordt begroet door onze Latijnse quote, gevolgd door de waarde van 4!:

Hannibal ante Portas24

of, u kunt dubbelklikken en het zal worden uitgevoerd in de console.

als u alle bestanden wilt bundelen, voeg dan bundle_files en compressed toe en zet zipfile op geen zoals dit:

from distutils.core import setupimport py2exesetup( options = {'py2exe': {'bundle_files': 1, 'compressed': True}}, console = , zipfile = None,)

en opnieuw uitvoeren van de commando ‘ s om de te genereren .exe file.

nu kunnen uw eindgebruikers uw scripts uitvoeren zonder enige kennis of vereisten die op hun lokale machines zijn geïnstalleerd.

problemen oplossen

fouten tijdens het converteren van .py bestanden naar .exe bestanden zijn veelvoorkomend, dus we zullen een aantal veelvoorkomende bugs en oplossingen tonen.

ontbrekende DLL-s repareren na gebruik van py2exe

een veel voorkomend probleem met py2exe ontbreekt .dll – s.

DLL staat voor “dynamic-link library”, en ze zijn er niet alleen om bugs te maken, promise. Dll ‘ s bevatten code, gegevens en bronnen die ons programma nodig zou kunnen hebben tijdens de uitvoering.

na het uitvoeren van de .exe, als u een systeemfout krijgt die iets zegt als:

The program can't start because something.dll is missing from your computer. Try reinstalling the program to fix this problem. 

of de opdrachtregel zegt:

ImportError: (DLL load failed: The specified module could not be found.)

de oplossing is om de ontbrekende .dll te vinden en deze in uw dist map te plaatsen. Er zijn twee manieren om dit te doen.

  1. doorzoek uw computer naar het bestand en kopieer het vervolgens. Dit zal meestal werken.
  2. vind de ontbrekende .dll online en download het. Probeer het niet te downloaden van een of andere schaduwrijke website.

hoe 32/64-bit uitvoerbare bestanden te genereren met py2exe?

om een 64-bits uitvoerbaar bestand te maken, installeert u 64-bits Python op uw apparaat. Hetzelfde geldt voor de 32-bits versie.

hoe py2exe te gebruiken op Linux of Mac

py2exe ondersteunt niet op Linux of Mac, omdat het bedoeld is om te maken .exe-bestanden die een Windows-uniek formaat. U kunt een Windows virtuele machine te downloaden op zowel Mac en Linux, gebruik maken van wijn of gebruik maken van een andere tool zoals Pyinstaller op Linux, of py2app op Mac.

conclusie

om Python-projecten gemakkelijker te laten draaien op Windows-apparaten, moeten we een uitvoerbaar bestand genereren. We kunnen veel verschillende tools gebruiken, zoals Pyinstaller, auto-py-to-exe, cx_Freeze en py2exe.

binaire bestanden kunnen DLL-s gebruiken, dus zorg ervoor dat u ze bij uw project opneemt.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.

More: