78 Stimmen

Verfahren zur Umwandlung eines einfachen Python-Skripts in eine ausführbare Windows-Datei

Ich habe ein Skript geschrieben, das einem Windows-Benutzer im täglichen Leben helfen soll. Ich möchte ihr einfach die .exe-Datei schicken und sie nicht bitten, Python oder dlls zu installieren oder sich mit zusätzlichen Dateien zu beschäftigen.

Ich habe viele der Stackoverflow-Einträge über die Kompilierung von Python-Skripten in ausführbare Dateien gelesen. Ich bin etwas verwirrt, da es viele Optionen gibt, aber einige scheinen veraltet zu sein (keine Aktualisierungen seit 2008) und keine war einfach genug für mich, um dies jetzt nicht zu fragen, nachdem ich ein paar Stunden mit diesem Thema verbracht habe.

Ich hoffe, dass es eine bessere, zeitgemäße Methode gibt, dies zu tun.

Ich habe nachgeschaut:

aber entweder konnte ich sie nicht zum Laufen bringen oder nicht verstehen, wie ich das gewünschte Ergebnis erhalte. Am nächsten kam ich mit py2exe, aber es gab mir immer noch die MSVCR71.dll

Ich würde eine Schritt-für-Schritt-Antwort zu schätzen wissen, da ich auch nicht in der Lage war, einigen der Antworten auf die Optimierungsfragen hier zu folgen, die ein gewisses Vorwissen über die Verwendung von py2exe oder einigen der anderen Tools voraussetzen.

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

33voto

Nicholas Riley Punkte 41936

PyInstaller erstellt eine ausführbare Einzeldatei, wenn Sie die Option --onefile (obwohl es eigentlich nur extrahiert und dann selbst ausgeführt wird).

Es gibt ein einfaches PyInstaller-Tutorial aquí . Wenn Sie Fragen zur Verwendung haben, stellen Sie sie bitte...

13voto

PPTim Punkte 1306

Verwenden Sie py2exe und fügen Sie dies 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 die Eingabeaufforderung / Idle ausführen, beides funktioniert bei mir. Hoffentlich hilft es

13voto

Bob Punkte 131

Ich würde empfehlen, zu gehen http://sourceforge.net/projects/py2exe/files/latest/download?source=files um py2exe herunterzuladen. Erstellen Sie dann eine Python-Datei namens setup.py. Geben Sie darin ein

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

In Ihrem Benutzerordner speichern Speichern Sie die Datei, die Sie konvertieren möchten, ebenfalls in diesem Ordner

Führen Sie die Eingabeaufforderung des Fensters aus eintippen setup.py install py2exe

Es sollte viele Codezeilen ausgeben...

Öffnen Sie dann den Ordner dist.

Führen Sie die exe Datei.

Wenn es Dateien gibt, die für das Programm benötigt werden, verschieben Sie sie in den Ordner

Kopieren/Senden Sie den Ordner dist an die Person.

Optional: Ändern Sie den Namen des Dist-Ordners

Hoffentlich klappt es!:)

9voto

Alex Martelli Punkte 805329

Ich schließe mich @Nicholas an und empfehle PyInstaller (mit dem --onefile Flagge), aber gewarnt sein : tun pas die "neueste Version", PyInstaller 1.3, verwenden - es ist Jahre alt. Verwenden Sie die "Vorabversion" 1.4, laden Sie sie herunter aquí -- oder noch besser den Code aus dem svn-Repository -- SVN installieren und ausführen svn co http://svn.pyinstaller.org/trunk pyinstaller .

Wie @Nicholas andeutet, können dynamische Bibliotheken nicht laufen. aus derselben Datei wie der Rest der ausführbaren Datei - aber zum Glück können sie verpackt zusammen mit dem ganzen Rest in einer "selbstentpackenden" ausführbaren Datei, die sich bei Bedarf in ein temporäres Verzeichnis entpackt; PyInstaller leistet dabei gute Arbeit (und bei vielen anderen Dingen -- py2exe ist beliebter, aber pyinstaller meiner Meinung nach in allen anderen Punkten vorzuziehen ist).

6voto

godlovesdavid Punkte 169

1) Holen Sie sich py2exe von aquí je nach Ihrer Python-Version.

2) Erstellen Sie eine Datei mit dem Namen "setup.py" im selben Ordner wie das Skript, das Sie konvertieren möchten, mit folgendem Code:

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

3) Gehen Sie zur Eingabeaufforderung, navigieren Sie zu diesem Ordner und geben Sie 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.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X