Philosophie - Interpreter und Quelldatei oder .exe Datei?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
ne0h
User
Beiträge: 115
Registriert: Samstag 16. Februar 2008, 11:35

Hallo Python Gemeinde,

ich komm mal wieder mit einer eher philosophischen Frage, da ich mich in den letzten Tagen mit einigen Anwendern (Menschen, die wirklich keinen Schimmer von Programmierung haben) unterhalten sowie mit 2 Bekannten, die selbst programmieren.

Kern der Sache ist:

Ich habe mir überlegt, wie genau ich nun einem "reinen" Anwender ein fertiges Pythonprogramm ausliefern würde. Natürlich beschränke ich mich hier erstmal nur auf eben jene Anwender, die quasi auf dem niedrigsten Level der Nutzung sind und nicht viel mehr kennen als "Doppelklick -> läuft".

Nun, ich habe ja zwei Möglichkeiten, einem Anwender ein solches Programm zukommen zu lassen.

1. Ich liefere nur die reine Quelltext-Datei aus und muss dem Anwender mitteilen, dass dieser sich auch Python selbst mit seinem Interpreter installieren muss.

Dann, je nach Lage, muss der Anwender das Programm entweder über Kommandozeile starten ("Kommandozeile", alleine das Wort schreckt schon viele Anwender ab...) oder die Quelldatei eben per Doppelklick starten (dabei muss ja die Quelldatei mit dem Pythoninterpreter als "Standard" verknüpft sein).


2. Ich nutze beispielsweise "PyInstaller" und erstelle mir eine fertige .exe Datei (wahlweise auch eine fertige .app Datei für Mac OS X - das Betriebssystem ist jetzt aber erstmal egal). Der Anwender hat damit natürlich keine grossen Probleme, muss nur noch nen Doppelklick drauf machen und das Programm läuft einfach (dass in der .exe auch der Interpreter steckt, weiss dann sowieso wohl kaum Jemand).


Was mich nun stört ist die Tatsache, dass mir Methode Nr.2 nicht wirklich ... nun ja, "sauber" vorkommt.

Ich habe das Gefühl, dass dieses "Umarbeiten" der Quelldatei in eine fertige .exe Datei nicht dem Prinzip entspricht, oder besser gesagt, nicht dem wirklichen Grundsatz, der Philosophie, entspricht, die Python eigentlich vertritt.

Wie ich schonmal irgendwo hier lesen konnte, gibt es Jene, die den Standpunkt vertreten, dass ein Pythonprogramm als reine Quelldatei ausgeliefert wird, da es eben der Grundsatz der Sprache ist: Quelldatei wird geschrieben und dann dem Interpreter zum fressen gegeben.

Neige ich mich nun also eher in die Richtung, dem unbeholfenen Anwender entgegen zu kommen indem ich mein Programm über solche Umwege zur .exe verpacke oder hat dieser sich ein wenig anzustrengen, um dem Entwickler entgegen zu kommen?


Ich hoffe, man versteht meinen leichten Sarkasmus. :lol:

Was mir noch einfällt:
Gibt es irgendeine bekannte Möglichkeit, eine solche Methode wie den PyInstaller in einen Editor oder eine IDE (wie z.B. "Eric") einzubinden, sprich: Den ganzen Vorgang ein wenig zu vereinfachen und etwas zu "automatisieren" ??

Irgendwelche Plugins die sowas bewerkstelligen?


ne0h
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Na, also das spielt IMHO die Philosophie von Python keine Rolle. Es kommt einfach darauf an, welche Zielgruppe du hast und vor allem wieviel man denen zumuten mag.

Leicht raus bist du, wenn dein Zielgruppe Linux User sind. Da ist i.d.R. immer Python installiert und somit reicht es die Quellentexte rum zu reichen.

Wenn die Zielgruppe ehr normale Windows User sind, dann kommt es halt darauf an, ob die halt nur von der Sorte Klick-Bunti sind. Da muß es einfach eine EXE bzw. ein Installer sein, der alles macht und danach kann er das Programm starten...

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Vielleicht könnte es in den von dir genannen Fällen - Anwender kennt nur "Doppelklick -> läuft" - ein Kompromiss sein, die exe-Datei auszuliefern (für den Anwender) und den Quelltext beizugeben (fürs Gewissen oder die Philosophie oder was auch immer).
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Man könnte es auch so drehen, das die Quellentexte nicht blos beigaben sind, sondern wirklich zur Ausführung herangezogen werden, der Anwender aber dennoch eine EXE Datei zum klicken bekommt ;) Einfacher ist es keine EXE sondern einfach nur eine CMD Batchdatei beizupacken. Also quasi: Python Interpreter + Quellentexte + CMD und fertig...
Hätte den Vorteil, das man bei einem Update teilweise nur die .py Dateien aktualisieren muß.

Siehe auch [wiki]FAQ#IchMchteMeinScriptInEineAusfhrbareDateiPackenUmEsEinfacherVerteilenZuKnnen[/wiki]

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Flano
User
Beiträge: 43
Registriert: Sonntag 5. September 2004, 14:13

Hallo ne0h,

wenn du Anwender auf niedrigsten Level als Ausgangspunkt nimmst, wird es wahrscheinlich am besten sein, wenn du dein Programm als „.exe“ weiter gibst. Selbst User die mehr Erfahrung haben, installieren ungern Python und dann vielleicht noch WX, um ein Programm laufen lassen zu können. (Windows User only!)

Ich gebe immer eine „Lies mich“ Datei dazu. Dort findet man Informationen wie: Open Source, in Python geschrieben, Plattform unabhängig, spezielle .exe für Windows, Email usw. Selbst wenn sich das Programm von alleine verbreitet gibt es für den interessierten User genügend Informationen. Über die Email Adresse kann gerne Kontakt aufgenommen werden zwecks Quellcode.
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Für Windows User sollte es einen installer geben der am besten gleich alles beinhaltet. Redundanzen sind sie die ja gewohnt. Auf freien Systemen hat man ja fast immer einen Packetmanager. Da ist ein Paket natürlich das ideale. ;)
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
ne0h
User
Beiträge: 115
Registriert: Samstag 16. Februar 2008, 11:35

Na, also das spielt IMHO die Philosophie von Python keine Rolle
Gut, ist wohl eher "meine" Philosophie. :wink:

Man könnte es auch so drehen, das die Quellentexte nicht blos beigaben sind, sondern wirklich zur Ausführung herangezogen werden, der Anwender aber dennoch eine EXE Datei zum klicken bekommt Wink Einfacher ist es keine EXE sondern einfach nur eine CMD Batchdatei beizupacken. Also quasi: Python Interpreter + Quellentexte + CMD und fertig...
Inwiefern eine CMD Batch? Oder besser gesagt: Wozu genau?

Ich gebe immer eine „Lies mich“ Datei dazu. Dort findet man Informationen wie: Open Source, in Python geschrieben, Plattform unabhängig, spezielle .exe für Windows, Email usw. Selbst wenn sich das Programm von alleine verbreitet gibt es für den interessierten User genügend Informationen. Über die Email Adresse kann gerne Kontakt aufgenommen werden zwecks Quellcode.
Das klingt eigentlich sehr gut, da es ziemlich Anwenderfreundlich wirkt und man dazu einiges an Infos packen kann. Ich denke, dass auch eine Multilösung, wie sie z.B. von "pütone" angesprochen wurde, ziemlich vernünftig erscheint.

Schliesslich werden einige Programme auch direkt für diverse Plattformen angeboten und dazu meistens auch noch der Quellcode, der hier in Sachen Python ja schon das Programm selbst ausmacht.

Für Windows User sollte es einen installer geben der am besten gleich alles beinhaltet. Redundanzen sind sie die ja gewohnt. Auf freien Systemen hat man ja fast immer einen Packetmanager. Da ist ein Paket natürlich das ideale.
Zum Verständnis: Wie genau sollte so ein Paket denn aussehen bzw. wie sollte es erstellt werden?


ne0h
Benutzeravatar
Shizzo
User
Beiträge: 11
Registriert: Dienstag 6. November 2007, 19:47

ne0h hat geschrieben:
Man könnte es auch so drehen, das die Quellentexte nicht blos beigaben sind, sondern wirklich zur Ausführung herangezogen werden, der Anwender aber dennoch eine EXE Datei zum klicken bekommt Wink Einfacher ist es keine EXE sondern einfach nur eine CMD Batchdatei beizupacken. Also quasi: Python Interpreter + Quellentexte + CMD und fertig...
Inwiefern eine CMD Batch? Oder besser gesagt: Wozu genau?
Ein simples .bat script, im einfachsten Fall:

beispiel.bat

Code: Alles auswählen

 python beispiel.pyw 
Dabei ist zu beachten, dass das .bat script im gleichen Verzeichnis liegen muss, wie das .pyw script. Andernfalls, musst du entweder die Umgebugsvariable "PATH" abändern, oder das absolute Verzeichnis im .bat script selber angeben.

shizzo
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

ne0h hat geschrieben:
Für Windows User sollte es einen installer geben der am besten gleich alles beinhaltet. Redundanzen sind sie die ja gewohnt. Auf freien Systemen hat man ja fast immer einen Packetmanager. Da ist ein Paket natürlich das ideale.
Zum Verständnis: Wie genau sollte so ein Paket denn aussehen bzw. wie sollte es erstellt werden?
In der Regel mit einem Texteditor. Du erstellst die nötigen Metadaten wie das ``debian/``-Verzeichnis für Debian und Ubuntu (dann mit dpkg-buildpackage für jede Version einzeln bauen), die RPM-Spec für Fedora, Mandriva und OpenSUSE (auch hier dann die RPMs aus den Quellen bauen), das Ebuild für Gentoo, das PKGBUILD für Arch-Linux, die entsprechenden Ports für die BSDs und schon sind die meisten glücklich.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten