Hallo
Ich bin gerade dran ein kleines Programm zu schreiben. Jetzt überlege ich wie ich das am besten "an den Mann/die Frau" bringe.
Am liebsten wäre es mir wenn man das Programm (zur Zeit nur ein Scriptfile) nach dem herunterladen einfach per doppelklick starten könnte.
Das Programm richtet sich vor allem an Einsteiger unter Linux (v.a. Ubuntu), aber sollte auch auf anderen Systemen einfach zu starten sein.
Bei google hab ich nix gefunden, da ich nicht ganz sicher bin wonach ich da suchen müßte
Gruß
MilesTeg
Der einfachste Weg um Pythonscripts zu starten?
Code: Alles auswählen
#!/usr/bin/python
Das Getarre hat den Zweck, dass automatisch das Executable-Flag gesetzt wird und die Meisten DE wie Gnome und KDE bieten automatischen entpacken von tar an.
Oder wenn in deinem Skript eine bestimmte Funktion beim Aufruf ausgeführt werden soll, kannst du es so lösen:
Das testet, ob das Skript importiert wird oder so aufgerufen wird. Bringt also den Vorteil mit, modularer zu sein.
Code: Alles auswählen
def main():
# hier deine Funktion
pass
if __name__ == '__main__':
main()
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ich würde eherJoghurt hat geschrieben:in die erste Zeile des Skriptes, das Skript als Ausführbar markieren (chmod +x Skriptname). Dann in ein tar packen und das Tar zum runterladen anbieten.Code: Alles auswählen
#!/usr/bin/python
Code: Alles auswählen
#!/usr/bin/env python
machen, das hat den Vorteil auch dann zu funktionieren wenn ``python`` wo anders als in ``/usr/bin/`` liegt.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Und den Nachteil, nicht zu funktionieren, wenn env in /bin statt /usr/bin liegt. Ist mir schonmal passiert.Leonidas hat geschrieben:das hat den Vorteil auch dann zu funktionieren wenn ``python`` wo anders als in ``/usr/bin/`` liegt.
Außerdem kannst du dann nicht mehr Optionen an Python übergeben, da nur die ersten beiden "Wörter" ausgewertet werden, zumindest unter einigen Unices.
Ist denke ich Geschmackssache
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ja, das stimmt. Ich denke aber es ist warscheinlicher, dass ``env`` in ``/usr/bin/`` liegt, als dass ``python`` es tut. Es gibt ja doch mehr Leute die sich ``python`` nach ``/usr/local/bin/`` installieren, damit sie eine aktuelle Python-Version haben. Aber ich gebe zu, sehr viel Unterschied besteht da wirklich nicht.Joghurt hat geschrieben:Und den Nachteil, nicht zu funktionieren, wenn env in /bin statt /usr/bin liegt. Ist mir schonmal passiert.Leonidas hat geschrieben:das hat den Vorteil auch dann zu funktionieren wenn ``python`` wo anders als in ``/usr/bin/`` liegt.
Ja, das ist ein ärgerlicher Bug, das stimmt.Joghurt hat geschrieben:Außerdem kannst du dann nicht mehr Optionen an Python übergeben, da nur die ersten beiden "Wörter" ausgewertet werden, zumindest unter einigen Unices.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- birkenfeld
- Python-Forum Veteran
- Beiträge: 1603
- Registriert: Montag 20. März 2006, 15:29
- Wohnort: Die aufstrebende Universitätsstadt bei München
Weniger ein Bug als eine Beschränkung. Als nächstes kommt jemand und sagt, er will Quotes im Shebang interpretiert haben. Etc., und am Schluss muss der Kernel sämtliche Shell-Wordsplitting-Regeln implementieren.Leonidas hat geschrieben:Ja, das ist ein ärgerlicher Bug, das stimmt.Joghurt hat geschrieben:Außerdem kannst du dann nicht mehr Optionen an Python übergeben, da nur die ersten beiden "Wörter" ausgewertet werden, zumindest unter einigen Unices.
Dann sind wir bei einem Shebang mit Scripting-Unterstützung und Umgebungsvariablen...birkenfeld hat geschrieben:Weniger ein Bug als eine Beschränkung. Als nächstes kommt jemand und sagt, er will Quotes im Shebang interpretiert haben. Etc., und am Schluss muss der Kernel sämtliche Shell-Wordsplitting-Regeln implementieren.Leonidas hat geschrieben:Ja, das ist ein ärgerlicher Bug, das stimmt.Joghurt hat geschrieben:Außerdem kannst du dann nicht mehr Optionen an Python übergeben, da nur die ersten beiden "Wörter" ausgewertet werden, zumindest unter einigen Unices.
... und dann kommt jemand und will Python-Code im Sheband ausführen...
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Naja, das ist vielleicht schon übertrieben, obwohl es sicher auch dafür sinnvolle Anwendungsfälle gäbe, aber so ganz normale Parameter finde ich sind ziemlich grundlegende Funktionalität.birkenfeld hat geschrieben:Weniger ein Bug als eine Beschränkung. Als nächstes kommt jemand und sagt, er will Quotes im Shebang interpretiert haben. Etc., und am Schluss muss der Kernel sämtliche Shell-Wordsplitting-Regeln implementieren.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Wenn man entsprechende Rechte auf dem ungewöhnlichen Zielsystem hat, könnte man - auch im Hinblick auf andere Scripts - Symlinks nutzen, um z.B. /usr/bin/env bereitzuhalten.
Andererseits kann man auch einfach die Shebang-Line anpassen Eine Lösung, die überall funktioniert, gibt es wohl ohnehin nicht. Da ist es doch gut, dass man es leicht den Anforderungen angleichen kann.
Andererseits kann man auch einfach die Shebang-Line anpassen Eine Lösung, die überall funktioniert, gibt es wohl ohnehin nicht. Da ist es doch gut, dass man es leicht den Anforderungen angleichen kann.
Das wird ja auch von den distutils so gehandhabt für alles, was über scripts installiert wird.Y0Gi hat geschrieben:Andererseits kann man auch einfach die Shebang-Line anpassen