Czy jest jakaś wada korzystania z PYTHONDONTWRITEBYTECODE w Dockerze?


9

W wielu samouczkach Docker opartych na Pythonie (takich jak: ten ) używają tej opcji PYTHONDONTWRITEBYTECODE, aby Python unikał zapisywania plików .pyc podczas importu modułów źródłowych (Jest to równoważne z określeniem opcji -B).

Jakie są ryzyko i zalety konfiguracji tej opcji?


aby ponownie wykorzystać rozmiar obrazu
LinPy

3
Jakieś wady pod względem wydajności?
floatingpurr

Odpowiedzi:


3

Kiedy uruchomisz pojedynczy proces Pythona w kontenerze, który nie spawnuje innych procesów Pythona w trakcie jego życia, nie ma w tym „ryzyka”.

Przechowywanie kodu bajtowego na dysku służy do kompilacji Pythona w kod bajtowy tuż po pierwszym wywołaniu programu i jego bibliotek zależnych w celu zapisania tego kroku przy kolejnych wywołaniach. W kontenerze proces działa tylko raz, dlatego ustawienie tej opcji ma sens.


Komunikat „zabierz do domu” jest taki, że ta opcja jest przydatna i bezpieczna przez 99% czasu w przypadku projektu Docker. Dobrze?
floatingpurr

1
Tak jak powiedziałem, jest w porządku, jeśli nie spawnujesz innych procesów Pythona niż sam proces konteneryzowany podczas życia kontenera.
hek2mgl
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.