Могу ли я кэшировать байт-код всех моих скриптов python, например, под центральным деревом каталогов в моем домашнем каталоге?

Я не обязательно хочу остановить python от "кэширования" его байтового кода, я просто хочу остановить его от "калечения" всех моих каталогов с помощью __pycache__ запись в любом месте, где он находит и выполняет скрипт. Например, я хотел бы, чтобы байтовый код всех моих скриптов был сохранен под, скажем $HOME/.python/cache.

Я запускаю Linux, но я считаю, что это было бы интересно и для пользователей Windows.

1 ответов


TL; DR

нет, вы не можете двигаться __pycache__.

фон

PEP 304 предложил добавить PYTHONBYTECODEBASE переменная среды, которая будет контролировать, где хранится байт-код. Он был отозван и никогда не реализован, поэтому то, что вы хотите сделать, невозможно.

переход от одного на .py файл в один __pycache__ в папке, а в PEP 3147 должно было быть частичное исправление и делается в Python 3.

остановка __pycache__ создать

вы можете остановить python от создания любого байт-кода, передав -B параметр интерпретатора python или путем установки PYTHONDONTWRITEBYTECODE переменные среды. Однако это не рекомендуется, так как это может замедлить работу скриптов.