Wie bündelt man eine Python-Anwendung mit Abhängigkeiten?

Ich muss meine Python-Anwendung, ihre Abhängigkeiten und Python in einem einzigen MSI-Installationsprogramm paketieren. Das Endergebnis sollte wünschenswerterweise sein:

  • Python ist standardmäßig installiert
  • Das Paket und seine Abhängigkeiten werden in einem separaten Verzeichnis installiert (evtl. Standortpakete)
  • Das Installationsverzeichnis sollte das Python unkomprimiert enthalten und eine eigenständige ausführbare Datei ist nicht erforderlich

7 Solutions collect form web for “Wie bündelt man eine Python-Anwendung mit Abhängigkeiten?”

Eine Art von Dup von dieser Frage, wie man eine Pythonschlange in eine ausführbare machen kann .

Es kocht auf:

Py2exe auf Windows, Freeze auf Linux und py2app auf Mac.

Ich benutze PyInstaller (die svn-Version), um eine eigenständige Version meines Programms zu erstellen, die Python und alle Abhängigkeiten enthält. Es dauert ein wenig fummeln, um es richtig zu machen und alles einzuschließen (wie py2exe und andere ähnliche Programme, siehe diese Frage ), aber dann funktioniert es sehr gut.

Sie müssen dann ein Installationsprogramm erstellen. NSIS Funktioniert das gut und ist kostenlos, aber es schafft .exe-Dateien nicht .msi. Wenn .msi nicht nötig ist, empfehle ich es sehr. Ansonsten schau mal die Antworten auf diese Frage nach anderen Optionen.

Meine Firma nutzt das kostenlose InnoSetup-Tool. Es ist ein mäßig komplexes Programm, das Tonnen von Flexibilität für den Bau von Installateuren für Fenster hat. Ich glaube, dass es erstellt.exe und nicht .msi Dateien, aber. InnoSetup ist nicht pythonenspezifisch, aber wir haben ein Installationsprogramm für eines unserer Produkte erstellt, das Python zusammen mit Abhängigkeiten an Standorten installiert, die vom Benutzer zur Installationszeit angegeben werden.

Ich habe viel bessere Ergebnisse mit Abhängigkeiten und benutzerdefinierte Ordnerstrukturen mit pyinstaller , und es lässt Sie finden und spezifizieren versteckte Importe und Hooks für größere Abhängigkeiten wie numpy und scipy. Auch ein PITA.

Py2exe ist der beste Weg, dies zu tun. Es ist ein bisschen ein PITA zu benutzen, aber das Endergebnis funktioniert sehr gut.

Py2exe macht Windows ausführbare Dateien mit Python gebündelt in.

Ok, ich habe py2exe vor und es funktioniert perfekt, außer für eine Sache … Es funktioniert nur auf ausführbaren Windows-Maschinen. Ich habe dann über Jython gelernt, die ein Python-Skript in eine .Jar-Datei verwandeln. Welches, wie Sie wissen, ist ausführbar von jeder Maschine, die Java ("Zu deiner letzten laufenden Version") installiert hat. Das ist großartig, weil sowohl Unix, Fenster als auch ios (die meiste Zeit) Java laufen lassen. Das bedeutet, dass es von allen folgenden Maschinen ausführbar ist. Solange sie Java laufen lassen Keine Notwendigkeit für "py2mac + py2exe + freeze" nur um auf allen Betriebssystemen laufen. Nur Jython

Für weitere Informationen darüber, wie es funktioniert und wie Sie es verwenden können klicken Sie hier.
http://www.jython.org/

  • Wie schaffst du eine osx-Anwendung / dmg aus einem Python-Paket?
  • Wie kann ich meine python-Applikation mit externen Python-Bibliotheken verpacken?
  • Pip, um Dateien an die falsche Stelle zu installieren
  • Liste pythonpaketabhängigkeiten auflisten, ohne sie zu laden?
  • Pythonverpackung: Räder vs Tarball (tar.gz)
  • Warum sollte man ein Ei über einen Sedisten benutzen?
  • Verschleierung von Python-Bytecode durch Interpreter-Mutation
  • Migration zu pip + virtualenv von setuptools
  • Was sind die Vorteile der Verpackung Ihrer Python-Bibliothek / Anwendung als .egg-Datei?
  • Was sind die Vorteile und Downsides der Verwendung der Python Verpackung * .egg Format über ein einfaches Verzeichnis mit setup.py?
  • Wie kann ich Python-Anwendungen remote aktualisieren?
  • Python ist die beste Programmiersprache der Welt.