Hoe kan ik een .py naar .exe converteren voor Python?

Ik probeer een vrij eenvoudig Python-programma om te zetten in een uitvoerbaar bestand en kon niet vinden wat ik zocht, dus ik heb een paar vragen (ik gebruik Python 3.6):

De methoden om dit te doen die ik tot nu toe heb gevonden, zijn als volgt

  1. een oude versie van Python downloaden en pyinstaller/py2exe
  2. gebruiken

  3. een virtuele omgeving opzetten in Python 3.6 waarmee ik 1 kan doen.
  4. een Python naar C++ converter downloaden en die gebruiken.

Dit is wat ik heb geprobeerd/welke problemen ik ben tegengekomen.

  • Ik heb pyinstallergeïnstalleerd vóór de vereiste download ervoor (pypi-iets) dus het werkte niet. Na het downloaden van het vereiste bestand, herkent pyinstallerhet nog steeds niet.
  • Als ik een virtualenv in Python 2.7 aan het opzetten ben, moet ik dan eigenlijk Python 2.7 hebben geïnstalleerd?
  • op dezelfde manier, de enige python naar C++ converters die ik zie werken alleen tot Python 3.5 – moet ik deze versie downloaden en gebruiken als ik dit probeer?

Antwoord 1, autoriteit 100%

Stappen om .py naar .exe te converteren in Python 3.6

  1. Installeer Python 3.6.
  2. Installeer cx_Freeze, (open je opdrachtprompt en typ pip install cx_Freeze.
  3. Installeer idna, (open je opdrachtprompt en typ pip install idna.
  4. Schrijf een .py-programma met de naam myfirstprog.py.
  5. Maak een nieuw python-bestand met de naam setup.pyin de huidige map van je script.
  6. Kopieer de onderstaande code in het bestand setup.pyen sla deze op.
  7. Met shift ingedrukt, klik met de rechtermuisknop op dezelfde map, zodat u een opdrachtpromptvenster kunt openen.
  8. Typ in de prompt python setup.py build
  9. Als je script foutloos is, is er geen probleem bij het maken van een applicatie.
  10. Controleer de nieuw aangemaakte map build. Er zit een andere map in. In die map vindt u uw aanvraag. Voer het uit. Maak jezelf gelukkig.

Zie het originele script in mijn blog.

setup.py:

from cx_Freeze import setup, Executable
base = None    
executables = [Executable("myfirstprog.py", base=base)]
packages = ["idna"]
options = {
    'build_exe': {    
        'packages':packages,
    },    
}
setup(
    name = "<any name>",
    options = options,
    version = "<any number>",
    description = '<any description>',
    executables = executables
)

BEWERKEN:

  • zorg ervoor dat u in plaats van myfirstprog.pyuw .pyextensiebestandsnaam plaatst zoals gemaakt in stap 4;
  • je moet elk importpakket in je .pyopnemen in de packageslijst (bijvoorbeeld: packages = ["idna", "os","sys"])
  • any name, any number, any descriptionin het bestand setup.pymag niet hetzelfde blijven, u moet het dienovereenkomstig wijzigen (bijvoorbeeld:name = "<first_ever>", version = "0.11", description = '')
  • de importpakketten moeten worden geïnstalleerd voordat u stap 8start.

Antwoord 2, autoriteit 64%

Python 3.6 wordt ondersteund door PyInstaller.

Open een cmd-venster in je Python-map (open een opdrachtvenster en gebruik cdof houd shift ingedrukt, klik er met de rechtermuisknop op in Windows Verkenner en kies ‘Open opdrachtvenster hier’). Voer dan gewoon in

pip install pyinstaller

En dat is het.

De eenvoudigste manier om het te gebruiken is door het in te voeren op uw opdrachtprompt

pyinstaller file_name.py

Voor meer details over het gebruik ervan, ga naar deze vraag.


Antwoord 3, autoriteit 24%

Er is een open source-project genaamd auto-py-to-exe op GitHub. Eigenlijk gebruikt het ook alleen PyInstaller intern, maar aangezien het een eenvoudige GUI heeft die PyInstaller bestuurt, kan het een comfortabel alternatief zijn. Het kan ook een zelfstandig bestand uitvoeren in tegenstelling tot andere oplossingen. Ze bieden ook een videodie laat zien hoe je het instelt.

GUI:

Uitvoer:


Antwoord 4, autoriteit 9%

Ik kan je niet vertellen wat het beste is, maar een tool die ik in het verleden met succes heb gebruikt, was cx_Freeze. Ze zijn onlangs geüpdatet (op 7 januari ’17) naar versie 5.0.1 en het ondersteunt Python 3.6.

Hier is de pypi
https://pypi.python.org/pypi/cx_Freeze

De documentatie laat zien dat er meer dan één manier is om dit te doen, afhankelijk van uw behoeften.
http://cx-freeze.readthedocs.io/en/latest/overview. html

Ik heb het nog niet uitgeprobeerd, dus ik ga verwijzen naar een post waar de eenvoudige manier om het te doen werd besproken. Sommige dingen kunnen wel of niet veranderd zijn.

Hoe gebruik ik cx_freeze?


Antwoord 5, autoriteit 6%

Je kunt het nu converteren met PyInstaller. Het werkt zelfs met Python 3.

Stappen:

  1. Start je pc op
  2. Open opdrachtprompt
  3. Voer opdracht pip install pyinstaller
  4. in

  5. Als het is geïnstalleerd, gebruik je het commando ‘cd’ om naar de werkmap te gaan.
  6. Voer opdracht pyinstaller <filename>
  7. uit


Antwoord 6, autoriteit 5%

Ik gebruik Nuitka en PyInstaller met mijn pakket, PySimpleGUI.

Nuitka
Er waren problemen om tkinter te compileren met Nuikta. Een van de projectmedewerkers ontwikkelde een script dat het probleem oploste.

Als je tkinter niet gebruikt, kan het “gewoon” voor je werken. Als je tkinter gebruikt, zeg het dan en ik zal proberen het script en de instructies te publiceren.

PyInstaller
Ik gebruik 3.6 en PyInstaller werkt prima!
Het commando dat ik gebruik om mijn exe-bestand te maken is:

pyinstaller -wF mijnbestand.py

De -wF zal een enkel EXE-bestand maken. Omdat al mijn programma’s een GUI hebben en ik geen opdrachtvenster wil tonen, zal de -w optie het opdrachtvenster verbergen.

Dit komt het dichtst in de buurt van het eruitzienvan een Winforms-programma dat in Python is geschreven.

[Update 20-jul-2019]

Er is een PySimpleGUI GUI-gebaseerde oplossing die PyInstaller gebruikt. Het maakt gebruik van PySimpleGUI. Het heet pysimplegui-exemakeren kan pip worden geïnstalleerd.

pip install PySimpleGUI-exemaker

Om het uit te voeren na installatie:

python -m pysimplegui-exemaker.pysimplegui-exemaker


Antwoord 7, autoriteit 2%

De beste en gemakkelijkste manier is zeker auto-py-to-exe, en ik heb alle onderstaande stappen en rode vlaggen gegeven, waardoor je slechts 5 minuten nodig hebt om een definitieve .exe te krijgen. bestand omdat u niets hoeft te leren om het te gebruiken.

1.) Het werkt mogelijk niet voor python 3.9 op sommige apparaten, denk ik.

2.) Als u tijdens het installeren van python ‘add python 3.x to path’ had geselecteerd, open dan de opdrachtprompt in het startmenu en typ pip install auto-py-to-exeom het te installeren. U moet op enter drukken op de opdrachtprompt om het resultaat te krijgen van de regel die u typt.

3.) Als het eenmaal is geïnstalleerd, kun je op de opdrachtprompt zelf gewoon auto-py-to-exetypen om het te openen. Er wordt een nieuw venster geopend. De eerste keer kan het tot een minuut duren. Ook zal het sluiten van de opdrachtprompt auto-py-to-exe ook sluiten, dus sluit het niet voordat u uw .exe-bestand gereed hebt.

4.) Er zijn knoppen voor alles wat je nodig hebt om een .exe-bestand te maken en de schermafbeelding ervan wordt hieronder gedeeld. Voor het pictogram heb je ook een .ico-bestand nodig in plaats van een afbeelding, dus om het te converteren, kun je https://convertio gebruiken .co/

5.) Als uw script externe bestanden gebruikt, kunt u deze toevoegen via auto-py-to-exe en in het script moet u enkele wijzigingen aanbrengen in hun pad. Eerst moet je import sysschrijven als dat nog niet is geschreven, ten tweede moet je een variabele maken voor bijvoorbeeld location=getattr(sys,"_MEIPASS",".")+"/", ten derde, de locatie van example.png zou location+"/example.png"zijn als het zich niet in een map bevindt.

6.) Als er een fout wordt weergegeven, komt dit waarschijnlijk doordat een module met de naam setuptools niet de nieuwste versie heeft. Om het te upgraden naar de nieuwste versie, moet je op de opdrachtprompt pip install --upgrade setuptoolsschrijven. In het script kan het schrijven van import setuptoolsook helpen. Als de versie van setuptools hoger is dan 50.0.0, dan zou alles in orde moeten zijn.

7.) Na al deze stappen, in auto-py-to-exe, zal het .exe-bestand, wanneer de conversie is voltooid, in de map staan die u zou hebben gekozen (standaard is dit ‘c:/ gebruikers/naam/uitvoer’) of het zou door uw antivirusprogramma zijn verwijderd als u er een heeft. Elke antivirus heeft verschillende methoden om een bestand te herstellen, dus experimenteer gewoon als je het niet weet.

Hier is hoe de eenvoudige GUI van auto-py-to-exe kan worden gebruikt om een .exe-bestand te maken.

Other episodes