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
- een oude versie van Python downloaden en
pyinstaller/py2exe
- een virtuele omgeving opzetten in Python 3.6 waarmee ik 1 kan doen.
- een Python naar C++ converter downloaden en die gebruiken.
gebruiken
Dit is wat ik heb geprobeerd/welke problemen ik ben tegengekomen.
- Ik heb
pyinstaller
geïnstalleerd vóór de vereiste download ervoor (pypi-iets) dus het werkte niet. Na het downloaden van het vereiste bestand, herkentpyinstaller
het 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
- Installeer Python 3.6.
- Installeer cx_Freeze, (open je opdrachtprompt en typ
pip install cx_Freeze
. - Installeer idna, (open je opdrachtprompt en typ
pip install idna
. - Schrijf een
.py
-programma met de naammyfirstprog.py
. - Maak een nieuw python-bestand met de naam
setup.py
in de huidige map van je script. - Kopieer de onderstaande code in het bestand
setup.py
en sla deze op. - Met shift ingedrukt, klik met de rechtermuisknop op dezelfde map, zodat u een opdrachtpromptvenster kunt openen.
- Typ in de prompt
python setup.py build
- Als je script foutloos is, is er geen probleem bij het maken van een applicatie.
- 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.py
uw.py
extensiebestandsnaam plaatst zoals gemaakt in stap 4; - je moet elk
import
pakket in je.py
opnemen in depackages
lijst (bijvoorbeeld:packages = ["idna", "os","sys"]
) any name, any number, any description
in het bestandsetup.py
mag niet hetzelfde blijven, u moet het dienovereenkomstig wijzigen (bijvoorbeeld:name = "<first_ever>", version = "0.11", description = ''
)- de
import
pakketten 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 cd
of 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.
Antwoord 5, autoriteit 6%
Je kunt het nu converteren met PyInstaller. Het werkt zelfs met Python 3.
Stappen:
- Start je pc op
- Open opdrachtprompt
- Voer opdracht
pip install pyinstaller
- Als het is geïnstalleerd, gebruik je het commando ‘cd’ om naar de werkmap te gaan.
- Voer opdracht
pyinstaller <filename>
in
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-exe
om 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-exe
typen 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 sys
schrijven 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 setuptools
schrijven. In het script kan het schrijven van import setuptools
ook 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.