Python compilieren ohne Ausführung

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
droink
User
Beiträge: 2
Registriert: Montag 16. Januar 2012, 08:47

Hallo zusammen,

ich stehe vor folgendem Problem. Ich habe ein python source file (main.py). Dieses will ich kompilieren jedoch soll es nicht ausgeführt werden. Habe mir dazu die zwei Module py_compile und compileall angeschaut. Allerdings kompilieren diese nur die main.py, nicht aber die darin importierten Module.

Jemand eine Idee wie ich von allen abhängigen, importierten Modulen ebenfalls ein .pyc erstellen lassen kann?
BlackJack

@droink: Die `main.py` importieren, damit die darin importierten Module kompiliert werden, und dann die `main.py` noch einmal explizit kompilieren!?
droink
User
Beiträge: 2
Registriert: Montag 16. Januar 2012, 08:47

Ja super, total einfach. Beim Import werden also die .pyc files erstellt jedoch nicht ausgeführt?
BlackJack

@droink: Code auf Modulebene wird dabei schon ausgeführt, der sollte in sauber programmierten Modulen aber keine Nebeneffekte haben.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

BlackJack hat geschrieben:@droink: Die `main.py` importieren, damit die darin importierten Module kompiliert werden, und dann die `main.py` noch einmal explizit kompilieren!?
Na das geht auch nur wenn die Module top-level importiert werden, bei Imports in Unterfunktionen geht das nicht. Gut, das ist der Regelfall bei gutem Code, aber wir kennen den Code vom OP ja nicht, und es gibt ja so Sachen wie optionale Abhängigkeiten.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten