C'è qualche svantaggio nell'uso di PYTHONDONTWRITEBYTECODE in Docker?


9

In molti tutorial Docker basati su Python (come: questo ) usano l'opzione PYTHONDONTWRITEBYTECODEper evitare che Python scriva file .pyc sull'importazione di moduli sorgente (equivale a specificare l'opzione -B).

Quali sono i rischi e i vantaggi di impostare questa opzione?


per riutilizzare la dimensione dell'immagine
LinPy

3
Qualche inconveniente in termini di prestazioni?
floatingpurr

Risposte:


3

Quando si esegue un singolo processo Python nel contenitore, che non genera altri processi Python stesso durante il suo ciclo di vita, non vi è alcun "rischio" nel farlo.

La memorizzazione del codice byte su disco viene utilizzata per compilare Python in codice byte subito dopo la prima chiamata di un programma e delle sue librerie dipendenti per salvare tale passaggio nelle seguenti chiamate. In un contenitore il processo viene eseguito una sola volta, pertanto l'impostazione di questa opzione ha senso.


Quindi il messaggio da portare a casa è che questa opzione è utile e sicura il 99% delle volte nel caso di un progetto Docker. Giusto?
floatingpurr

1
Come ho detto, va bene se non si generano altri processi Python oltre al processo containerizzato stesso durante la vita del contenitore.
hek2mgl il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.