Python Neuling hat Fragen zum Übersetzen

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
CrazyPlaya
User
Beiträge: 5
Registriert: Mittwoch 20. August 2008, 15:40

Hallo an alle,

ich bin absoluter neuling in der Python Programmierung. Ich fange direkt mal ganz brutal an. Ich arbeite unter Windows:D. Nun habe ich mir das Projekt shtooms runtergeladen und möchte dieses im Python Idle kompilieren um daraus ein exe zu erhalten. Wie muss ich vorgehen?

Gruß

CrazyPlaya
Earthnuker
User
Beiträge: 12
Registriert: Dienstag 19. August 2008, 17:09
Kontaktdaten:

hi, wilkommen im forum :D
zu deinem problem:
du brauchst erstmal einen compiler(wer hätte das gedacht)
allerdings hab ich keine ahnung wie man mit nem python compiler compiliert, da ich auch noch ein neuling bin
lunar

CrazyPlaya hat geschrieben:ich bin absoluter neuling in der Python Programmierung. Ich fange direkt mal ganz brutal an. Ich arbeite unter Windows:D. Nun habe ich mir das Projekt shtooms runtergeladen und möchte dieses im Python Idle kompilieren um daraus ein exe zu erhalten.
Die Dokumentation zu py2exe oder pyinstaller lesen, verstehen und anwenden.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Hallo CrazyPlaya, willkommen im Forum.

Zum Problem:
[wiki]FAQ[/wiki] lesen, beide.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
CrazyPlaya
User
Beiträge: 5
Registriert: Mittwoch 20. August 2008, 15:40

Danke.

Was für einen Compiler gibt es denn?
Habe auch gerade noch mal genauer geschaut Python ist ja eigentlich ähnlich wie Java also erst Interpretieren und dann Compilieren. Ist jetzt nur die Frage wie man das macht:D. Und ist im Python Packet der Compiler nicht direkt mit dabei.
CrazyPlaya
User
Beiträge: 5
Registriert: Mittwoch 20. August 2008, 15:40

Ok Leonidas, danke werde direkt mal lesen:D
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Doch, CPython enthält einen Compiler, der genau wie Java aus dem Code Bytecode erstellt (das sind die ``pyc``- und ``pyo``-Dateien).
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
nuss
User
Beiträge: 53
Registriert: Donnerstag 28. August 2008, 11:36

bei python ist ein compiler dabei,
der kann allerdings nicht in .exe dateien
kompilieren sonder nur in pyc oder pyo
benutzen kann man den ueber den interpreter

Code: Alles auswählen

import compiler
compiler.compile(args*)
importierte dateien, werden uebrigens
beim aufrufen des programms automatisch in
pyc kompilliert
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

nuss hat geschrieben:importierte dateien, werden uebrigens
beim aufrufen des programms automatisch in
pyc kompilliert
Es werden alle Dateien kompiliert, denn die Python VM kann nur Bytecode ausführen. Es wirdn aber nur der Bytecode von importierten Modulen auf die Festplatte geschrieben.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

CrazyPlaya hat geschrieben:ähnlich wie Java also erst Interpretieren und dann Compilieren.
Das ist nicht korrekt. Java-Quelltext muss explizit mit einem Compiler (meist javac genannt) in Bytecode (diese .class-Dateien, die man dann häufig zu .jar-Dateien zusammenfasst) übersetzt werden, der dann von einer virtuellen Maschine (meist java genannt) verstanden wird. Diese führt den Bytecode aus - ob dieser interpretiert oder nochmals kompiliert wird, ist nicht festgelegt sondern, der einzelnen Implementierung überlassen. Suns Hotspot-VM macht beides. Die VM beginnt, Code zu interpretieren und dabei zu zählen, wie häufig der Code durchlaufen wird. Passiert dies oft genug, wird der Abschnitt in Maschinensprache übersetzt und diese wird ab dann ausgeführt.

CPython (meist python genannt) nimmt direkt den Python-Quelltext entgegen, übersetzt ihn für den Benutzer unsichtbar in Bytecode und führt dann diesen Bytecode aus. Bei CPython ist dies ein einfacher Interpreter. Eine Übersetzung in Maschinensprache findet nicht statt - könnte aber. CPython schreibt den Bytecode (diese .pyc-Dateien, die überall auftauchen) zusätzlich in eine Datei, um das Übersetzen des Quelltexts das nächste Mal einsparen zu können. Im Gegensatz zu Java, wo der Bytecode teil der genormten Sprachspezifikation ist, ist der Bytecode von CPython ein Implementationsdetail.

Jython geht daher etwas anders vor: Hier wird der Python-Quelltext in Java-Bytecode übersetzt und dieser dann der Java-VM übergeben, die ihn ausführt wie oben beschrieben.

Stefan
Antworten