Seite 1 von 1

Anklickbare Anwendung erstellen

Verfasst: Sonntag 3. August 2014, 12:53
von Goswin
Ich habe eine Anwendung gebaut, bestehend aus mehreren Modulen, die ich in Linux von einem Terminal aus aufrufe und die mittels mainloop die Kontrolle an an ein tkinter-Fenster übergibt. Diese Anwendung läuft auch auf Windows, kann aber auch dort nur von der Konsole aus aufgerufen werden, und benötigt dazu lächerlicherweise auch noch Idle. Dazu gleich drei Fragen, die aber deutlich zusammenhängen:

(1)
Wieso läuft meine Anwendung nicht mehr, wenn ich den Quellcode meiner importierten Module entferne, wo doch das Aufrufemodul nur den Bytecode dieser Module (welcher immer noch vorhanden ist) verwenden sollte?

(2)
Wie kann ich in Linux eine einzelne Datei erstellen, welche irgendwo hinverschoben werden kann und dort durch bloßes Anklicken die Anwendung zum Laufen bringt? Sozusagen "all included" und "foolproof".

(3)
Wie kann ich eine exe-Datei für Windows erstellen, die durch bloßes Anklicken die Anwendung zum Laufen bringt? Kann ich so eine von meinem Linuxrechner aus erstellen (natürlich nicht testen), oder brauche ich dazu selber ein Windows-Betriebssystem?

Vielen Dank für jegliche Hinweise!

Re: Anklickbare Anwendung erstellen

Verfasst: Sonntag 3. August 2014, 13:29
von BlackJack
Das Deine Anwendung unter Windows IDLE benötigt kann ich mir nicht vorstellen wenn Du das nicht irgendwo explizit benutzt. Und *dann* würde die Anwendung nicht nur unter Windows IDLE benötigen sondern natürlich auch unter jedem anderen System.

(1) Die Bytecodedateien müssen zum Interpreter passen. Ansonsten spricht da nichts gegen. Man sollte dann aber sicherheitshalber den Interpreter selbst mitliefern, eben weil man nicht sicher sein kann, dass auf dem Zielrechner ein zu diesen Dateien passender Interpreter installiert ist.

(2) Gar nicht. Was passiert wenn man auf ”die Datei anklickt” bestimmt das Programm welches man zum grafischen betrachten und anklicken der Datei verwendet. Es gibt Standardisierungsbestrebungen, so dass man das zum Beispiel für KDE und Gnome auf die gleiche Weise lösen kann, aber wirklich allgemein und ”foolproof” gibt's nichts. Bezüglich der Standardisierung schau Dir mal ``*.desktop``-Dateien nach dem Freedesktop-Standard an.

(3) Diese Frage ist eine FAQ die schon zig mal gestellt und beantwortet wurde. Wobei das vom Linuxrechner erstellen mit Wine gehen könnte, ich das aber nicht für empfehlenswert halte. Eine Windows-VM mit einer günstig erworbenen OEM-Windows-Lizenz, wäre da sicherer.

Re: Anklickbare Anwendung erstellen

Verfasst: Sonntag 3. August 2014, 16:10
von Goswin
BlackJack hat geschrieben: (1) Die Bytecodedateien müssen zum Interpreter passen. Ansonsten spricht da nichts gegen. Man sollte dann aber sicherheitshalber den Interpreter selbst mitliefern, eben weil man nicht sicher sein kann, dass auf dem Zielrechner ein zu diesen Dateien passender Interpreter installiert ist.
Problem gelöst. Aus irgendeinem Grund nennt mein Interpreter den Bytecode einer Datei xxx.py nicht wie erwartet xxx.pyc sondern xxx.cpython-32.pyc. Ein einfaches Umbenennen der Dateien macht sie auffindbar.

BlackJack hat geschrieben: (3) Wobei [exe-Dateien] vom Linuxrechner erstellen mit Wine gehen könnte, ich das aber nicht für empfehlenswert halte. Eine Windows-VM mit einer günstig erworbenen OEM-Windows-Lizenz, wäre da sicherer.
'cx_Freeze’s documentation' hat geschrieben: cx_Freeze is a set of scripts and modules for freezing Python scripts into executables in much the same way that py2exe and py2app do. Unlike these two tools, cx_Freeze is cross platform and should work on any platform that Python itself works on. It requires Python 2.4 or higher and does work with Python 3.
Aber was bedeutet "cross-plattform" bloß im obigen Zusammenhang?

Re: Anklickbare Anwendung erstellen

Verfasst: Sonntag 3. August 2014, 16:32
von cofi
Dass du auf jeder Plattform ein eigenes Executable erstellen musst, es aber auch auf jeder Plattform geht. Das sagt sogar die Dokumentation: http://cx-freeze.readthedocs.org/en/lat ... -platforms