web-dev-qa-db-de.com

Konvertierung eines einfachen Python Skripts in eine ausführbare Windows-Datei

Ich habe ein Skript geschrieben, das einer Windows-Benutzerin in ihrem täglichen Leben hilft. Ich möchte ihr einfach die .exe schicken und sie nicht bitten, Python, DLLs zu installieren oder mit zusätzlichen Dateien umzugehen.

Ich habe viele Stackoverflow-Einträge zum Kompilieren von Python Skripten in ausführbare Dateien gelesen. Ich bin ein wenig verwirrt, da es viele Optionen gibt, aber einige scheinen veraltet zu sein (keine Updates seit 2008) und keine waren einfach genug für mich, das jetzt nicht zu fragen, nachdem ich ein paar Stunden damit verbracht habe.

Ich hoffe, es gibt eine bessere und aktuellere Möglichkeit, dies zu tun.

Ich habe untersucht:

aber entweder konnte ich sie nicht zum Arbeiten bringen oder ich konnte nicht verstehen, wie ich das gewünschte Ergebnis erzielen konnte. Das nächste, das ich bekam, war mit py2exe, aber es gab mir immer noch die MSVCR71.dll

Ich würde mich über eine schrittweise Antwort freuen, da ich hier auch einige der Optimierungsantworten nicht befolgen konnte, die ein gewisses Verständnis der Verwendung von py2exe oder einiger anderer Tools voraussetzen.

Ich verwende Python 2.5, da eines der Module nur für diese Version verfügbar ist.

78
greye

PyInstaller erstellt eine einzelne ausführbare Datei, wenn Sie das --onefile -Option (obwohl das, was es tatsächlich tut, Extrahieren ist, läuft es dann von selbst).

Es gibt ein einfaches PyInstaller-Tutorial hier . Wenn Sie Fragen zur Verwendung haben, posten Sie diese bitte ...

32
Nicholas Riley

Fügen Sie unter Verwendung von py2exe Folgendes in Ihre setup.py ein:

from distutils.core import setup
import py2exe, sys, os

sys.argv.append('py2exe')

setup(
    options = {'py2exe': {'bundle_files': 1}},
    windows = [{'script': "YourScript.py"}],
    zipfile = None,
)

dann können Sie es über den Befehl Prompt/Idle ausführen. Beide funktionieren für mich. Ich hoffe es hilft

13
PPTim

ich würde empfehlen, zu http://sourceforge.net/projects/py2exe/files/latest/download?source=files zu gehen, um py2exe herunterzuladen. Erstellen Sie dann eine python Datei mit dem Namen setup.py. Geben Sie darin Folgendes ein

from distutils.core import setup
import py2exe
setup(console=['nameoffile.py'])

Speichern in Ihrem Benutzerordner Speichern Sie auch die zu konvertierende Datei in demselben Ordner

Führen Sie die Eingabeaufforderung des Fensters aus und geben Sie setup.py install py2exe Ein.

Es sollte viele Codezeilen ausgeben ...

Öffnen Sie als Nächstes den Ordner dist.

Führen Sie die Datei exe aus.

Wenn das Programm Dateien benötigt, um zu funktionieren, verschieben Sie diese in den Ordner

Kopieren/Senden Sie den dist-Ordner an die Person.

Optional: Ändern Sie den Namen des dist-Ordners

Hoffe, es funktioniert!:)

13
Bob

Ich würde mit @Nicholas PyInstaller (mit dem --onefile flag), aber seien Sie gewarnt: Verwenden Sie nicht die "neueste Version", PyInstaller 1.3 - es ist Jahre alt. Benutze das "Pre-Release" 1.4, lade es herunter hier - oder noch besser den Code aus dem svn repo - installiere SVN und starte svn co http://svn.pyinstaller.org/trunk pyinstaller.

Wie @Nicholas impliziert, können dynamische Bibliotheken nicht run aus derselben Datei wie der Rest der ausführbaren Datei stammen - aber zum Glück können sie gepackt zusammen mit allen ruhen Sie in einer ausführbaren Datei, die sich nach Bedarf selbst in ein temporäres Verzeichnis entpackt; PyInstaller leistet hier gute Arbeit (und bei vielen anderen Dingen - py2exe ist populärer, aber pyinstaller ist meiner Meinung nach im Übrigen vorzuziehen).

9
Alex Martelli

1) Holen Sie sich py2exe von hier , entsprechend Ihrer Python Version.

2) Erstellen Sie eine Datei mit dem Namen "setup.py" im selben Ordner wie das zu konvertierende Skript mit folgendem Code:

from distutils.core import setup
import py2exe
setup(console=['myscript.py']) #change 'myscript' to your script

3) Gehen Sie zu Eingabeaufforderung, navigieren Sie zu diesem Ordner und geben Sie Folgendes ein:

python setup.py py2exe

4) Es wird ein "dist" -Ordner im selben Ordner wie das Skript erstellt. Dieser Ordner enthält die EXE-Datei.

6
godlovesdavid

vielleicht möchten Sie sehen, ob Ihre App unter IronPython ausgeführt werden kann. Wenn ja, können Sie es in eine exe kompilieren http://www.codeplex.com/IronPython

2
fridder

Sie können eine ausführbare Datei aus python script erstellen, indem Sie NSIS (skriptfähiges Nullsoft-Installationssystem) verwenden python files to executable.

  • Laden Sie NSIS in Ihr System herunter und installieren Sie es.
  • Komprimiere den Ordner in .Zip Datei, die Sie in eine ausführbare Datei exportieren möchten.
  • Starten Sie NSIS und wählen Sie Installer based on Zip file. Suchen und geben Sie den Pfad zu Ihrer komprimierten Datei an.

  • Geben Sie Ihren Installer Name und Default Folder Pfad und klicken Sie auf Generate um deine exe Datei zu generieren.

  • Sobald es fertig ist, können Sie auf klicken Test ausführbare Dateien testen oder Close um den Vorgang abzuschließen.

  • Die erzeugte ausführbare Datei kann auf dem System installiert und verteilt werden, um diese Anwendung zu verwenden, ohne sich um die Installation der erforderlichen python und ihrer Pakete kümmern zu müssen.

Folgen Sie für das Video-Tutorial: Wie konvertiert man eine beliebige Python Datei in .EXE

0
kgangadhar