Ich schreibe gerade eine Kommandozeilen-Anwendung in Python, die den Endbenutzern so zur Verfügung gestellt werden muss, dass sie sehr einfach heruntergeladen und ausgeführt werden kann. Für diejenigen unter Windows, die Python (2.7) nicht installiert haben, beabsichtige ich, PyInstaller zu verwenden, um eine in sich geschlossene Windows-Programmdatei zu erzeugen. Benutzer können dann einfach "myapp.exe" herunterladen und myapp.exe [ARGUMENTS]
ausführen.Verpacken Sie eine Befehlszeilenanwendung für die Verteilung?
Ich möchte auch einen (kleineren) Download für Benutzer (auf verschiedenen Plattformen), die bereits Python installiert haben. Eine Möglichkeit besteht darin, meinen gesamten Code in eine einzige .py-Datei "myapp.py" (beginnend mit #! /usr/bin/env python
) zu schreiben und diese zur Verfügung zu stellen. Dieser könnte heruntergeladen werden und dann unter Verwendung von myapp.py [ARGUMENTS]
oder python myapp.py [ARGUMENTS]
ausgeführt werden. Die Beschränkung meiner Anwendung auf eine einzelne .py-Datei hat jedoch einige Nachteile, einschließlich der Einschränkung meiner Fähigkeit, den Code zu organisieren und die Verwendung von Abhängigkeiten von Drittanbietern zu erschweren.
Stattdessen möchte ich den Inhalt mehrerer Dateien meines eigenen Codes, plus einige (reine Python) Abhängigkeiten verteilen. Gibt es irgendwelche Werkzeuge, die all dies in eine einzige Datei packen können, die einfach heruntergeladen und mit einer bestehenden Python-Installation ausgeführt werden kann?
Edit: Bitte beachte, dass ich diese Anwendungen benötigen für Endanwender laufen einfach zu sein. Es ist unwahrscheinlich, dass sie pip
oder irgendetwas anderes, das außerhalb des Python-Kerns liegt, installiert haben. Mit PyInstaller kann ich eine Datei generieren, die diese Benutzer aus dem Internet herunterladen und mit einem Befehl ausführen können (oder, wenn keine Argumente vorhanden sind, einfach durch Doppelklicken). Gibt es eine Möglichkeit, diese Benutzerfreundlichkeit zu erreichen, ohne PyInstaller zu verwenden (d. H. Ohne die Python-Laufzeit redundant zu bündeln)?
für die zweite (kleine) Lösung, warum nicht Pip verwenden? –
Sie haben sehr ähnliche Fragen [hier über Windows] (http://stackoverflow.com/questions/2136837/process-to-convert-simple-python-script-into-windows-executable?rq=1) und [hier in allgemein] (http://stackoverflow.com/questions/7156333/packaging-a-python-application?rq=1) – logc
Sie erwähnen verschiedene Plattformen, aber erwähnen Sie nicht, was sie sind. Ist "sudo apt-get install package" einfach genug für Ihre Endbenutzer? – berto