Ich untersuche die Kompilierung einer recht großen Menge von Python-Modulen und -Paketen zu pyo. Ich weiß, dass dies möglich ist, indem Sie entweder die Umgebungsvariable PYTHONOPTIMIZE setzen oder -O beim Start angeben. Ich möchte Pyo anstelle von Pyc erzwingen, um den kleinstmöglichen Platzbedarf zu erzielen. Um dies in meinem Bereitstellungsmodul zu tun, muss ich ein Wrapper-Skript erstellen, das das eigentliche Skript mit der Option -O startet, weil die Umgebungsvariable vor dem Starten des Interpreters angegeben werden muss.Kompilieren von .py-Dateien zu .pyo, ohne auf ein Wrapper-Skript zurückzugreifen
Gibt es eine Möglichkeit, dies zu umgehen und Pyo-Erstellung programmgesteuert erzwingen?
Mit freundlichen Grüßen, Thorsten
Danke für die Antwort, aber wie oben i des Schalters kennen skizzierte und würde es gerne vermeiden. Der Grund ist, dass es sich um ein Deployment-Tool handelt, und ich möchte verhindern, dass versehentlich zwei verschiedene Versionen (pyc und pyo) derselben Datei bereitgestellt werden. Momentan mache ich das, indem ich einen python.exe -O-Aufruf in ein Python-Skript über os.system einpacke. Das funktioniert, ist aber etwas merkwürdig, also fragte ich mich, ob ich das loswerden könnte. –
Wäre schön, in der Lage zu sein, es programmgesteuert (einfacher) zu steuern ... – martineau
"Beachten Sie, dass alle -O-Flag die Anweisung assert deaktiviert. Geben Sie -OO und Docstrings fallen gelassen. Diese machen nicht viel Geschwindigkeitsunterschied oder Platzeinsparungen. " <- Das hängt wirklich davon ab, wie viele 'assert' und 'if __debug__' Statements Sie haben, nicht wahr? Sie wissen, was sie über Annahmen sagen. – DylanYoung