Att skapa körbara filer från Python-skript med py2exe

introduktion

exekvera Python-skript kräver många förutsättningar som att ha Python installerat, ha en mängd moduler installerade, använda kommandoraden etc. medan du kör en .exe – fil är det mycket enkelt.

om du vill skapa en enkel applikation och distribuera den till många användare är det inte svårt att skriva det som ett kort Python-skript, men antar att användarna vet hur man kör skriptet och har Python redan installerat på sin maskin.

exempel som detta visar att det finns en giltig anledning att konvertera .py program till motsvarande .exe program på Windows. .exe står för ”körbar fil”, som också är känd som en binär.

det mest populära sättet att uppnå detta är att använda modulen py2exe. I den här artikeln går vi snabbt igenom grunderna i py2exe och felsöker några vanliga problem. För att följa med behövs ingen avancerad Python-kunskap, men du måste använda Windows.

att konvertera en tolkad språkkod till en körbar fil är en praxis som vanligtvis kallas frysning.

installera py2exe

för att använda modulen py2exe måste vi installera den. Låt oss göra det med pip:

$ pip install py2exe

konvertera Python-skript till .exe

Låt oss först skriva upp ett program som kommer att skriva ut lite text till konsolen:

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

Låt oss köra följande kommandon i Windows-kommandoraden för att skapa en katalog (exampDir), flytta koden vi redan skrev till nämnda katalog och slutligen köra den:

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

detta bör matas ut:

Hannibal ante Portas24

testa alltid skripten innan du gör dem till körbara för att se till att om det finns ett fel orsakas det inte av källkoden.

inställning och konfiguration

gör en annan fil som heter setup.py i samma mapp. Här kommer vi att hålla konfigurationsinformation om hur vi vill sammanställa vårt program. Vi lägger bara ett par rader kod i det för tillfället:

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

om vi hade att göra med en app med ett grafiskt användargränssnitt skulle vi ersätta console med windows som så:

setup(windows=)

öppna nu kommandotolken som administratör och navigera till katalogen vi just nämnde och kör filen setup.py :

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

dist mapp

om allt är gjort korrekt, bör detta producera en underkatalog som heter dist. Inuti det kommer det att finnas några olika filer beroende på ditt program, och en av dem ska vara example.exe. För att köra det från konsolen kör:

$ example

och du kommer att hälsas av vårt latinska citat, följt av värdet av 4!:

Hannibal ante Portas24

eller så kan du dubbelklicka på den och den körs i konsolen.

om du vill bunta ihop alla filer, Lägg till bundle_files och compressed och ställ in zipfile till ingen som så:

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

och åter köra kommandona för att generera .exe-fil.

nu kan dina slutanvändare köra dina skript utan någon kunskap eller förutsättningar installerade på sina lokala maskiner.

felsökning

Fel vid konvertering .py filer till .exe filer är vanliga, så vi listar några vanliga buggar och lösningar.

så här åtgärdar du saknade DLL-s Efter användning av py2exe

ett vanligt problem med py2exe saknas .dll -s.

DLL står för ”dynamic-link library”, och de är inte där bara för att göra buggar, lova. Dll-filer innehåller kod, data och resurser som vårt program kan behöva under körning.

efter att ha kört .exe, om du får ett systemfel som säger något som:

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

eller kommandoraden säger:

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

lösningen är att hitta den saknade .dll och förbi den i din dist-mapp. Det finns två sätt att göra detta.

  1. Sök efter filen på din dator och kopiera den sedan. Detta kommer att fungera för det mesta.
  2. hitta den saknade .dll online och ladda ner den. Försök att inte ladda ner den från någon skuggig webbplats.

hur genererar du 32/64-bitars körbara filer med py2exe?

för att göra en 64-bitars körbar, installera 64 bitars Python på din enhet. Detsamma gäller för 32-bitarsversionen.

hur man använder py2exe på Linux eller Mac

py2exe stöder inte på Linux eller Mac, eftersom det syftar till att skapa .exe-filer som är ett Windows-unikt format. Du kan ladda ner en Windows virtuell maskin på både Mac och Linux, använda Wine eller använda ett annat verktyg som Pyinstaller på Linux eller py2app på Mac.

slutsats

för att göra Python-projekt lättare att köra på Windows-enheter måste vi generera en körbar fil. Vi kan använda många olika verktyg, som Pyinstaller, auto-py-to-exe, cx_Freeze och py2exe.

binära filer kan använda DLL-s, så se till att inkludera dem med ditt projekt.

Lämna ett svar

Din e-postadress kommer inte publiceras.

More: