2009-12-24 12 views
28

Ich bin neu in der Programmiersprache Python. Ich habe mich gefragt, ob es möglich ist, ein in Python geschriebenes Programm zu kompilieren.Ist es möglich, ein in Python geschriebenes Programm zu kompilieren?

+3

Sie nicht tatsächlich ein Python-Skript "kompilieren". Sie führen es mit dem Python-Interpreter aus. – ghostdog74

+10

@ ghostdog74 - Ja, aber Python _kann_ kompiliert werden. –

+1

@andrew, ja ich weiß Python kann kompiliert werden. Dieser Typ ist neu in Python, also nehme ich an, dass er Compilieren meinte, was man zum Beispiel mit C macht, nicht fortgeschrittenere Sachen wie py2exe oder pyc files ... – ghostdog74

Antwort

31

denke ich Compiling Python Code ein guter Anfang wäre:

Python-Quellcode automatisch in Python-Bytecode ist von der CPython Dolmetscher zusammengestellt. Kompilierter Code ist normalerweise in PYC (oder PYO) -Dateien gespeichert, und wird regeneriert, wenn die Quelle aktualisiert oder wenn sonst erforderlich ist.

Um ein Programm zu Menschen verteilen, die bereits Python installiert ist, können Sie Schiff entweder die PY-Dateien oder die PYC Dateien. In neueren Versionen können Sie auch ein ZIP-Archiv erstellen, das PY- oder PYC-Dateien enthält, und ein kleines "Bootstrap-Skript" verwenden, um das ZIP Archiv zum Pfad hinzuzufügen.

zu „übersetzen“, ein Python-Programm in eine ausführbare Datei, eine Bündelungswerkzeug wie als Gordon McMillan des Installateurs (alternativer Download) (Cross-Plattform) verwenden, py2exe Thomas Heller (Windows), Anthony Tuininga der cx_Freeze (plattformübergreifend) oder Bob Ippolitos py2app (Mac). Diese Werkzeuge setzt Ihre Module und Dateien in irgendeine Art von Archivdatei, und erstellt eine ausführbare Datei, die automatisch Dinge setzt, so dass Module aus diesem Archiv importiert werden. Einige Tools können das Archiv in die ausführbare Datei selbst einbetten.

1

Python kompilieren im laufenden Betrieb, wenn Sie es ausführen.

Führen Sie eine .py Datei (Linux): python abc.py

2

Python eine interpretierte Sprache ist, so dass Sie Ihre Skripte nicht kompilieren müssen, um sie laufen zu lassen. Der einfachste Weg, um einen auszuführen, ist, zu seinem Ordner in einem Terminal zu navigieren und "python somefile.py" auszuführen. Dies hängt davon ab, ob Sie Python installiert haben von the python site.

Sie können Python-Anwendungen kompilieren, aber das ist in der Regel nicht etwas, was ein neuer Entwickler zunächst tun muss. Wenn Sie danach suchen, werfen Sie einen Blick auf py2exe. Dies nimmt Ihr Python-Skript und packt es als eine ausführbare Datei wie jedes Programm auf Ihrem Windows-basierten Computer. Sie können auch einzelne Dateien mit Python kompilieren, wie im Abschnitt "Kompilieren von Python-Modulen zu Bytecode" unter this site.

8

beschrieben. Sie müssen es nicht kompilieren. Wenn Sie es zuerst verwenden (importieren), wird es vom CPython-Interpreter kompiliert. Aber wenn Sie wirklich kompilieren wollen, gibt es mehrere Möglichkeiten.

zu kompilieren

oder 2 Kompilierung nur eine bestimmte * .py Datei exe, die Sie gerade

import py_compile 
py_compile.compile("yourpythoncode.py") 
+1

py2exe ist besonders gut dafür. Ich habe es reichlich benutzt und bin sehr glücklich damit. Es enthält sogar alle Ihre Importanweisungen und mehrere Module/Codedateien – inspectorG4dget

10
verwenden können

Python kann als dynamische Sprache nicht statisch in den Maschinencode "kompiliert" werden, wie C oder COBOL. Sie benötigen immer einen Interpreter, um den Code auszuführen, der per Definition in der Sprache eine dynamische Operation ist.

Sie können Quellcode in Bytecode "übersetzen", was nur ein Zwischenprozess ist, den der Interpreter ausführt, um die Last des Codes zu beschleunigen. Er konvertiert Textdateien mit Kommentaren, Leerzeichen, Wörtern wie 'if'. 'def', 'in', usw. in binärem Code, aber die dahinterliegenden Operationen sind in Python genau dieselben, nicht in Maschinencode oder irgendeiner anderen Sprache. Dies ist, was es in .pyc-Dateien gespeichert und es ist auch zwischen Architekturen portierbar.

Wahrscheinlich, was Sie brauchen, ist es nicht "kompilieren" den Code (was nicht möglich ist), sondern einen Interpreter (in der richtigen Architektur) mit dem Code "einzubetten", um den Code ohne eine externe Installation des Interpreters zu ermöglichen. Um dies zu tun, können Sie all diese Tools wie py2exe oder cx_Freeze verwenden.

Vielleicht bin ich bin ein wenig pedantisch auf diesem :-P

12

Wenn Sie wirklich wollen, können Sie immer mit Cython kompilieren. Dies erzeugt C-Code, den Sie dann mit jedem C-Compiler wie GCC kompilieren können.

1

Vermeiden von Redundanz Ich wiederhole meine Antwort hier nicht.

Bitte beachten Sie meine Antwort here.

Verwandte Themen