BlackJack hat geschrieben:@framp: Das ist fragwürdig weil Python so nicht funtkioniert. Du versuchst da mit Gewalt die vorgesehenen Mechanismen von Python auszuhebeln um das in eine Datei zu zwingen.
Zugegebenermassen finde ich diese Methode auch etwas merkwürdig. Python hat so viele mächtige packages - und trotzdem finde ich keinen einfachen Weg mit Python einfach eine Menge von .py Dateien in einer Datei zu packagen. Da war ich froh über die o.g. Seite die ja eigentlich genau das macht was ich suche.
Setz Dich lieber mit den dafür vorgesehenen Wegen Python-Programme zu "deployen" auseinander. Wenn es nicht systemweit installiert werden soll, reicht es aus alles in ein Archiv zu stecken. Auch Anfänger sollten in der Lage sein ein Archiv zu entpacken und eine darin enthaltene Datei zu starten. Wenn es aus der Verzeichnisstruktur nicht ersichtlich sein sollte welche Datei das ist, weil zum Beispiel im Hauptverzeichnis nur eine einzige ausführbare Python-Datei steht und alles andere sauber in einem eigenen Package verstaut ist, muss die nötige Information halt in der `README`-Datei stehen.
Primäre Zielgruppe sind LinuxBeginners - und die haben schon genug Probleme aus der GUI mal ein shell Script aufzurufen. Bislang haben sie immer das shell Script runtergeladen und dann in der CommandLine aufgerufen. Das ist beschrieben wie man das macht - aber es gibt immer wieder Kandidaten die es trotzdem nicht auf Anhieb schaffen das Script auzurufen. Also will ich nicht noch weitere Komplexität wie das Auspacken von tars oder zips einbringen.
Ich könnte alle .py Files concatentieren und die import Lines löschen - und wäre auch schon fertig. Aber ich kann nicht glauben, dass es für dieses einfache - in meinen Augen häufiges Problem - eines Entwicklers in Python - keine einfache OutOfTheBox Lösung gibt ...
Ansonsten ist der übliche Weg eine `setup.py` und die `setuptools` wobei auch das Berücksichtigen von zum Beispiel `easy_install` keine schlechte Idee ist um es Anwendern einfach zu machen das Programm zu installieren.
Ich habe mir das mal diagonal angesehen - aber das ist Overkill für mein kleines Problemchen.