Varför konvertera PYC till EXE?
Den främsta anledningen till att skapa en .exe är distribution: en paketerad körbar fil körs på Windows utan att Python är installerat, vilket tar bort kravet på förberedelser för slutanvändare eller maskiner du inte kontrollerar. En .pyc är bytekod som är beroende av Python-tolken vid körning och kan inte köras som en fristående körbar fil.
Hur man konverterar PYC till EXE
PyInstaller FREE
Installera med pip install pyinstaller, kör pyinstaller --onefile your_script.py, och hitta den resulterande .exe-filen i mappen dist/. Använd --noconsole för GUI-appar och --icon=app.ico för att ställa in en anpassad ikon.
cx_Freeze FREE
Installera med pip install cx_Freeze, skapa en setup.py med ditt skript som en Executable, och kör python setup.py build; utdatan hamnar i en build/-mapp som måste distribueras i sin helhet.
Om dessa format
En .pyc-fil är kompilerad Python-bytecode som CPython cachar automatiskt för att påskynda uppstarten. Du behöver normalt inte öppna eller röra den. För att köra en, använd matchande…
Öppna detaljer för .PYC →En EXE-fil är ett körbart program för Windows. På Windows dubbelklickar du på den för att köra den. På Mac eller Linux använder du CrossOver eller Wine - EXE-filer körs inte nativt utanför…
Öppna detaljer för .EXE →Kvalitet & vad man bör tänka på
- Du behöver
.py-källkodsfilerna, inte bara.pyc; om du bara har en.pyc, dekompilera den först, men var medveten om att dekompilering är ofullständig för Python 3.9 och nyare. - Den
.exesom skapas är plattformsspecifik - att bygga på Windows skapar en körbar fil för Windows och du kan inte korskompilera till ett annat operativsystem. - Testa
.exe-filen på en ren maskin utan Python installerat för att bekräfta att alla importer och beroenden inkluderades korrekt.
Vanliga frågor
Vad är skillnaden mellan PyInstaller och cx_Freeze?
--onefile-läge som skapar en enda självständig .exe; cx_Freeze skapar alltid en mapp med filer som måste hållas samman.Kan jag bygga en .exe direkt från en .pyc-fil?
.py-källkodsfiler; om du bara har en .pyc, dekompilera den tillbaka till .py först.