Если вы хотите это только для интерактивных сеансов (в отличие от того, что происходит каждый раз, когда вы запускаете скрипт с python myscript.py
или ./myscript
или с модулем python -m mymodule
), вам нужна переменная окружения PYTHONSTARTUP
Если это имя читаемого файла, команды Python в этом файле выполняются до отображения первого приглашения в интерактивном режиме. Файл выполняется в том же пространстве имен, где выполняются интерактивные команды, так что объекты, определенные или импортированные в нем, могут использоваться без квалификации в интерактивном сеансе…
Если вы хотите, чтобы это всегда происходило вечно, вам, конечно, нужно установить эту переменную среды в каком-то подходящем глобальном месте - например, свой профиль оболочки на большинстве * nix-платформ или ваш профиль оболочки и ваш профиль launchd в macOS. или соответствующая часть панели управления в Windows (соответствующая часть изменяется практически при каждой новой версии Windows, но в названии обычно указывается «System»).
Если вы хотите, чтобы это произошло для всех пользователей, а не только текущего пользователя ... подробности о том, как установить общесистемную переменную среды, более специфичны для платформы, но в остальном идея та же .
Если вы хотите, чтобы это происходило для каждого сеанса Python, даже когда какая-то другая программа выполняет скрипт Python, и вы даже не знали, что он это делает ... то, что вам нужно, это либо usercustomize
или sitecustomize
, как указано в документации site
:
Этот модуль автоматически импортируется во время инициализации. Автоматический импорт может быть отключен с помощью опции -S интерпретатора.
...
После этих манипуляций с путями делается попытка импортировать модуль с именем sitecustomize
, который может выполнять произвольные настройки для конкретного сайта. Обычно он создается системным администратором в каталоге site-packages
.
После этого делается попытка импортировать модуль с именем usercustomize
, который может выполнять произвольные пользовательские настройки, если ENABLE_USER_SITE
имеет значение true. Этот файл предназначен для создания в пользовательском каталоге site-packages (см. Ниже), который является частью sys.path, если он не отключен -s
…
Итак, вы хотите найти подходящее место, чтобы переопределить это. Сначала попробуйте это:
python3 -m site
Затем, если это не даст вам sys.path
(возможно, только на довольно старом Python, но на всякий случай ...), также сделайте это:
python3 -c 'import sys; print('\n'.join(sys.path))'
Если вы хотите, чтобы эта настройка выполнялась только для текущего пользователя, вы хотите создать файл usercustomize.py
в каталоге USER_SITE
, указанном в python3 -m site
. Если каталог не существует, создайте его.
Если вы хотите, чтобы это происходило со всеми пользователями, вам нужен файл sitecustomize.py
в одной из директорий sys.path
. Проблема в том, что он уже может быть. Например, большинство встроенных в Python пакетов дистрибутивов Linux имеют свои собственные sitecustomize
модули. Если есть, python3 -c 'import sitecustomize; print(sitecustomize.__file__)
скажет вам, где это. Затем вы можете отредактировать или скопировать его, отредактировать эту копию и поместить эту копию где-то, что находится раньше sys.path
, чем оригинал. Как правило, /usr/local
, вероятно, лучше, чем /usr
, а site-packages
, вероятно, лучше, чем dist-packages
, вероятно, лучше, чем что-либо еще.