Hallo python forum,
bitte entschuldigt die Anfängerfrage - ich bin neu in diesem Forum und neu in Python!
Ich habe ein Python-Skript verändert und möchte es von .py zu .pyc kompilieren. Das Skript soll auf einem Ubuntu-Webserver laufen. Ich habe zwar schon ein wenig über die Vorgehensweise im Web gefunden, aber trotzdem komme ich nicht weiter. Ich habe auf meinem Mac Python installiert und habe somit die Shell, IDLE und den Launcher zur Verfügung.
Ich habe gelesen, dass folgender Befehl passend ist:
import py_compile
py_compile.compile('meinmodul.py')
Wo muss ich den Befehl ausführen und wo muss die .py - Datei vorliegen?
Kann ich die auf dem Mac kompilierte Datei auf dem Webserver laufen lassen oder muss ich sie dort kompilieren?
Vielen Dank für die Unterstützung!
Thorsten
.py in .pyc für ubuntu-Server kompilieren
Hallo und Willkommen im Forum.
Du musst deine Python-Datei nicht kompelieren, damit sie der Webserver (apache?) ausführen kann.
Du musst deine Python-Datei nicht kompelieren, damit sie der Webserver (apache?) ausführen kann.
the more they change the more they stay the same
Code: Alles auswählen
import py_compile
py_compile.compile('meinmodul.py')
Edit: kA ob es systemübergreifend geht...
Nochmal... Du musst nix kompilieren. Das wird automatisch und im Hintergrund gemacht wenn du die besteffenden .py Dateien startest. Die entstenden Bytecode-Dateien sind dann übrigens plattformunabhängig (jedoch nicht komplett versionsunabhängig).
@DasIch
Das stimmt nicht. Zumindest pro Minor-Version (also alle 2.X) ist das stabil, und auch Plattformuebergreifend. Wir liefern zB pycs fuer Py2.5 in Mac + Win aus.
Das stimmt nicht. Zumindest pro Minor-Version (also alle 2.X) ist das stabil, und auch Plattformuebergreifend. Wir liefern zB pycs fuer Py2.5 in Mac + Win aus.
Hallo und vielen Dank für eure Antworten!
Ich hatte bisher mit Python noch nichts zu tun, kenne mich aber gut mit PHP und Javascript aus. Das besagte Skript ist Teil eines Indizierungsdienstes. Ich möchte es an einer Stelle erweitern und hoffentlich problemlos weiterhin nutzen.
Diesen Befehl konnte ich auf dem Terminal nicht ausführen - wahrscheinlich muss dafür den Server konfigurieren. Aber wenn ich euch richtig verstanden habe muss ich das auch nicht machen.
In dem Verzeichnis gibt es die Datei als .py und als .pyc. Also kann ich einfach die .pyc löschen, die .py ändern und beim nächsten Aufruf wird die .pyc automatisch erzeugt?
Im Skript wird der Befehl import auch verwendet, jedoch sind die Module ohne Dateiendung angegeben. Nimmt Python automatisch eine .pyc bzw. .py - Datei?
Vielen Dank für euer Feedback!
Thorsten
Ich hatte bisher mit Python noch nichts zu tun, kenne mich aber gut mit PHP und Javascript aus. Das besagte Skript ist Teil eines Indizierungsdienstes. Ich möchte es an einer Stelle erweitern und hoffentlich problemlos weiterhin nutzen.
Code: Alles auswählen
import py_compile
py_compile.compile('meinmodul.py')
In dem Verzeichnis gibt es die Datei als .py und als .pyc. Also kann ich einfach die .pyc löschen, die .py ändern und beim nächsten Aufruf wird die .pyc automatisch erzeugt?
Im Skript wird der Befehl import auch verwendet, jedoch sind die Module ohne Dateiendung angegeben. Nimmt Python automatisch eine .pyc bzw. .py - Datei?
Vielen Dank für euer Feedback!
Thorsten
@merti: Du kannst die *.pyc-Datei auch *nicht* löschen. Hör auf Dir Gedanken zu machen und ändere einfach die *.py-Datei. Die *.pyc's sind ein Implementierungsdetail von CPython. Wenn die *.py-Datei neuer ist, wird die genommen und übersetzt und die alte *.pyc überschrieben. Alles automatisch.
Nur der Vollständigkeit halber:
Muss im Python Interpreter ausgeführt werden. Einfach in das CLI schreiben geht natürlich nicht
Ergänzend zu BlackJack, die Scripte werden beim importieren zu .pyc, beim einfachen ausführen werden diese nicht kompiliert.
Code: Alles auswählen
import py_compile
py_compile.compile('meinmodul.py')
Ergänzend zu BlackJack, die Scripte werden beim importieren zu .pyc, beim einfachen ausführen werden diese nicht kompiliert.