python compiler

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
spike_1895
User
Beiträge: 9
Registriert: Sonntag 29. Mai 2011, 19:06

hi leute
ich habe eine Frage:
Wie komplimiert man ein programm, so dass man es auf jedem pc auch ohne python benutzen kann.
gibt es da einen Compiler?
ich habe Python 2.5 gibt es da irgendein modul, für das zu komplimieren
schonmal Danke
Willi
Benutzeravatar
darktrym
User
Beiträge: 784
Registriert: Freitag 24. April 2009, 09:26

Versteh' ich nicht?
Der Sinn bei Python-Programmen ist doch gerade, dass der Code auf jeden System ausgeführt werden kann. Wenn ich den Kram kompiliere, grenze ich doch schon diese Vielfalt unnötigerweise wieder ein?
„gcc finds bugs in Linux, NetBSD finds bugs in gcc.“[Michael Dexter, Systems 2008]
Bitbucket, Github
problembär

Kompilieren wie in C geht nicht, aber es gibt Lösungen, die nur die benötigten Teile des Interpreters zu einer Windows-exe-Datei zusammenpacken. Zu nennen sind da PyInstaller und py2exe.
Für einen Anfänger, der etwas komplimieren will, vielleicht nicht ganz leicht, damit umzugehen.
Benutzeravatar
sparrow
User
Beiträge: 4195
Registriert: Freitag 17. April 2009, 10:28

"Auf jedem PC" ist dann aber nicht mehr. Dann halt nur noch "auf jedem PC mit Windows" was die mögliche Benutzergruppe drastisch enschränkt.
problembär

Na ja, auf Linux-Systemen ist ja meist ein Python-Interpreter vorhanden, so daß man da direkt das Skript einsetzen kann.

Auch wenn man kompiliert (z.B. C-Code), muß man das ja ggf. für verschiedene Plattformen tun.

Weiß eigentlich nicht, wo das Problem ist: Selbst ein Java-jar, das ja überall laufen soll, setzt ja die virtuelle Java-Maschine (JRE) für die jeweilige Plattform voraus. Insofern ist das auch nicht "besser" als die Lage beim Python-Interpreter.
BlackJack

@problembär: Wenn jemand eine Windows-EXE ausliefert, dann kann man den Quelltext (oder Bytecode) ja nicht einfach so unter Linux, oder auch MacOS, laufen lassen. Man schliesst damit also alle PC-Besitzer die kein Windows verwenden aus.
deets

@problembaer

Das Problem ist die Zielgruppe. *ICH* installiere auch mal kurz Mono, um TomBoy unter OSX laufen zu lassen. Mein Vater verliert darueber die letzten Haare. Und darum sind solche packaging-tools sehr sinnvoll. Unter Linux kannst du uU eher ein Paket bauen, aber das ist ja auch nix anderes.
problembär

BlackJack hat geschrieben:@problembär: Wenn jemand eine Windows-EXE ausliefert, dann kann man den Quelltext (oder Bytecode) ja nicht einfach so unter Linux, oder auch MacOS, laufen lassen. Man schliesst damit also alle PC-Besitzer die kein Windows verwenden aus.
? Man liefert natürlich mehrere Versionen für mehrere OS aus. Das war schon so bei Spielen in verschiedenen Versionen für C64, Atari 800 XL und ZX Spectrum. Sollte also bekannt sein.
Benutzeravatar
snafu
User
Beiträge: 6741
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

@problembär: Sofern es dir nicht bekannt war, man liefert für unixartige Systeme üblicherweise keine vorkompilierten Dateien für Skriptsprachen aus. Wo man dem Anwender (zumindest als Admin/Paketverwalter) das Kompilieren abnimmt, da handelt es sich im Regelfall um in C geschriebene Programme und dergleichen. Was aber wohl zutrifft, ist dass es häufig eine `*.exe` oder `*.msi` für Windows gibt, während Linux-Benutzer auf die Quellcode-Variante zurückgreifen sollen (sofern nichts passendes für den distributionseigenen Paketmanager vorhanden ist).

EDIT: Ok, es scheint dir bereits bekannt zu sein.
BlackJack

@problembär: Mal davon abgesehen, dass die Situation bei den genannten Plattformen nicht vergleichbar ist, weil dort die Programme in aller Regel für jedes System neu implementiert wurden, funktioniert das natürlich nur wenn man auch tatsächlich mehrere Varianten ausliefert. Der OP hat aber gesagt er möchte das zu einer EXE machen damit man es auf jedem PC ausführen kann. Und die ist nun einmal nicht auf jedem PC beziehungsweise System ausführbar.
problembär

Ach, der liest 'eh nicht mehr mit.
Antworten