Gibt es eine Möglichkeit, Python-Skript in Binärdateien zu kompilieren? Ich habe ein Datei-Python-Skript, das viele Module verwendet. Was ich möchte, ist, seine Kopie auf anderen Maschinen (freebsd) zu haben, aber ohne alle benötigten Module auf jedem Host zu installieren.
Was sind mögliche Lösungen in solchen Fällen?
Vielen Dank im Voraus!
Programme, die tun können, wonach Sie fragen:
Aber wie bereits erwähnt, können Sie auch ein Paket mit Distribute erstellen und die anderen Pakete als Abhängigkeiten haben. Sie können dann pip
verwenden, um dieses Paket zu installieren, und es wird alle Pakete installieren. Sie müssen jedoch immer noch Python und pip installieren.
cx_freeze hängt Ihre Python-Skripte an einen eigenständigen Python-Loader an und erzeugt ein Verzeichnis, das das Programm und die Abhängigkeiten der gemeinsamen Bibliothek enthält. Sie können dann die resultierende Distribution auf andere Maschinen unabhängig von Python oder Ihren Modulen kopieren.
%Vor%Eine bessere Antwort könnte sein, ein PIP-Paket zu erstellen, das diese dritten Module als Abhängigkeiten identifiziert, so dass die Installation so einfach wie "pip install mypackage; ./package"
sein kann Python sucht auch im aktuellen Verzeichnis nach import
-Modulen, sodass Sie diese nicht im Python-Verzeichnis installieren müssen. Ihre Verteilungsdateistruktur könnte wie folgt aussehen:
Wo main.py import module1, module2
Wahrscheinlich möchten Sie aus Ihrem Skript ein Python-Paket erstellen. Am Ende können Sie pip install mypackage
auf jedem Host ausführen und alle erforderlichen Module werden automatisch heruntergeladen und installiert.
Ich habe ein Skript, das diese Module importiert: urllib, urllib2, cookielib, BaseHTTPServer, sys, tempfile, paramiko, Protokollierung, re, OptionParser, lxml.
Sie möchten wahrscheinlich ein Python erstellen Paket von Ihrem Skript. Schlussendlich Sie können pip installieren Mein Paket auf jedem Host und all erforderliche Module werden heruntergeladen und automatisch installiert.
Wie ich verstanden habe, wird es nach Modulen suchen, die importiert werden sollen und herunterladen und Abhängigkeiten installieren .
Das ist in meinem Fall keine sehr gute Lösung. Benutzer auf anderen Hosts (~ 20) sollten Skripts ohne zusätzliche Download- / Installationsprozeduren ausführen können.
Ich hoffe, dass cx_freeze das ist, was ich brauche. Danke für deine Antworten.