Есть ли какой-либо недостаток в использовании PYTHONDONTWRITEBYTECODE в Docker?


9

Во многих руководствах по Docker, основанных на Python (таких как: этот ), они используют эту опцию PYTHONDONTWRITEBYTECODE, чтобы заставить Python избегать записи файлов .pyc при импорте исходных модулей (это эквивалентно указанию опции -B).

Каковы риски и преимущества настройки этой опции?


уменьшить размер изображения
LinPy

3
Какие-то недостатки с точки зрения производительности?
FloatingPurr

Ответы:


3

Когда вы запускаете один процесс Python в контейнере, который не порождает другие процессы Python в течение своей жизни, тогда нет никакого «риска» в этом.

Хранение байт-кода на диске используется для компиляции python в байт-код сразу после первого вызова программы и ее зависимых библиотек, чтобы сохранить этот шаг при следующих вызовах. В контейнере процесс запускается только один раз, поэтому установка этой опции имеет смысл.


Таким образом, сообщение о том, что этот вариант полезен и безопасен в 99% случаев в случае проекта Docker. Правильно?
floatingpurr

1
Как я уже сказал, это нормально, если вы не порождаете другие процессы Python, кроме самого процесса в контейнере, во время жизни контейнера.
hek2mgl
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.