Seite 1 von 1

Python compilieren ohne Ausführung

Verfasst: Montag 16. Januar 2012, 08:59
von droink
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?

Re: Python compilieren ohne Ausführung

Verfasst: Montag 16. Januar 2012, 09:21
von BlackJack
@droink: Die `main.py` importieren, damit die darin importierten Module kompiliert werden, und dann die `main.py` noch einmal explizit kompilieren!?

Re: Python compilieren ohne Ausführung

Verfasst: Montag 16. Januar 2012, 09:35
von droink
Ja super, total einfach. Beim Import werden also die .pyc files erstellt jedoch nicht ausgeführt?

Re: Python compilieren ohne Ausführung

Verfasst: Montag 16. Januar 2012, 10:33
von BlackJack
@droink: Code auf Modulebene wird dabei schon ausgeführt, der sollte in sauber programmierten Modulen aber keine Nebeneffekte haben.

Re: Python compilieren ohne Ausführung

Verfasst: Dienstag 17. Januar 2012, 03:16
von Leonidas
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.