Gibt es einen Nachteil bei der Verwendung von PYTHONDONTWRITEBYTECODE in Docker?


9

In vielen auf Python basierenden Docker-Tutorials (z. B. diesem ) wird diese Option PYTHONDONTWRITEBYTECODEverwendet, um zu vermeiden, dass Python beim Importieren von Quellmodulen .pyc-Dateien schreibt (dies entspricht der Angabe der Option -B).

Welche Risiken und Vorteile bietet die Einrichtung dieser Option?


um die Bildgröße
wiederzuverwenden

3
Irgendwelche Nachteile in Bezug auf die Leistung?
Floatingpurr

Antworten:


3

Wenn Sie einen einzelnen Python-Prozess im Container ausführen, der während seiner Lebensdauer keine anderen Python-Prozesse selbst erzeugt, besteht dabei kein "Risiko".

Das Speichern von Bytecode auf der Festplatte wird verwendet, um Python unmittelbar beim ersten Aufruf eines Programms und seiner abhängigen Bibliotheken in Bytecode zu kompilieren, um diesen Schritt bei den folgenden Aufrufen zu speichern. In einem Container wird der Prozess nur einmal ausgeführt. Daher ist es sinnvoll, diese Option festzulegen.


Die Nachricht zum Mitnehmen lautet also, dass diese Option im Fall eines Docker-Projekts in 99% der Fälle nützlich und sicher ist. Recht?
Floatingpurr

1
Wie gesagt, es ist in Ordnung, wenn Sie während der Lebensdauer des Containers keine anderen Python-Prozesse als den containerisierten Prozess selbst erzeugen.
hek2mgl
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.