Använda PyInstaller för att enkelt distribuera Python applikationer
Vad används PyInstaller till?
PyInstaller läser in en Python-skript som du har skrivit. Den analyserar din kod för att upptäcka varje annan modul och bibliotek som din skript behöver för att kunna köras. Sedan samlar den kopior av alla dessa filer - inklusive den aktiva Python-interpretern!
Varför använda Pyinstaller för att paketera Python?
PyInstaller används för att paketera Python-kod till fristående körbara applikationer för olika operativsystem. Den tar en Python-skript och genererar en enda körbar fil som innehåller alla nödvändiga beroenden och kan köras på datorer som inte har Python installerat. Detta möjliggör enkel distribution och implementering av Python-applikationer, eftersom användaren inte behöver ha Python och eventuella nödvändiga moduler installerade på sitt system för att kunna köra applikationen. Dessutom kan PyInstaller också användas för att skapa enfil-körbara filer, vilket är enskilda exekverbara filer som innehåller alla de nödvändiga beroendena för applikationen. Detta kan göra det ännu enklare att distribuera applikationen, eftersom användaren bara behöver ladda ned en enda fil.
Hur man installerar PyInstaller
PyInstaller finns tillgänglig som en vanlig Python-paket. Källarkiven för släppta versioner finns tillgängliga från PyPi, men det är enklare att installera den senaste versionen med hjälp av pip:
C:\> pip install pyinstaller
För att uppgradera en befintlig PyInstaller-installation till den senaste versionen, använd:
C:\> pip install --upgrade pyinstaller
C:\> pip install https://github.com/pyinstaller/pyinstaller/tarball/
Hur skapar jag en EXE med PyInstaller
Vi kommer att ta en enda python-fil som exempel för att förklara paketeringsstegen i detalj. Ta Python 3.11.0 som exempel efter att ha installerat aspose.cells.
- Skapa en python provfil med namnet exempel.py.
import os from jpype import * __cells_jar_dir__ = os.path.dirname(__file__) addClassPath(os.path.join(__cells_jar_dir__, "aspose-cells-23.1.jar")) addClassPath(os.path.join(__cells_jar_dir__, "bcprov-jdk15on-160.jar")) addClassPath(os.path.join(__cells_jar_dir__, "bcpkix-jdk15on-1.60.jar")) addClassPath(os.path.join(__cells_jar_dir__, "JavaClassBridge.jar")) import jpype import asposecells jpype.startJVM() from asposecells.api import Workbook, FileFormatType, CellsHelper print(CellsHelper.getVersion()) workbook = Workbook(FileFormatType.XLSX) workbook.getWorksheets().get(0).getCells().get("A1").putValue("Hello World") workbook.save("output.xlsx") jpype.shutdownJVM()
- Skapa en mapp som c:\app, och kopiera exempel.py (bilagd) till c:\app.
- Öppna din kommandoprompt och kör pyinstaller exempel.py-kommandot.
C:\app> pyinstaller example.py
- Kopiera jar-filerna (aspose-cells-xxx.jar, bcprov-jdk15on-160.jar, bcpkix-jdk15on-1.60.jar, JavaClassBridge.jar. De finns i C:\Python311\Lib\site-packages\asposecells\lib-mappen) till c:\app.
- Redigera filen med .spec-suffixet för att lägga till datasektionen som exempel.spec.
- Kör pyinstaller example.spec i kommandotolken.
C:\app> pyinstaller example.spec
- Byt katalogen till C:\app\dist\example, och du hittar filen example.exe.