Командная строка и среда
Интерпретатор CPython сканирует командную строку и среду для различных настроек.
Подробность реализации CPython: Схемы командной строки других реализаций могут отличаться. См. Альтернативные реализации для дополнительной информации.
1.1. Командная строка
При вызове Python, вы можете указать любой из этих параметров:
python [-bBdEhiIOPqRsSuvVWx?] [-c command | -m module-name | script | - ] [args]
Наиболее распространённый случай, конечно, это простой вызов скрипта:
python myscript.py
1.1.1. Параметры интерфейса
Интерфейс интерпретатора напоминает интерфейс UNIX-оболочки, но предоставляет некоторые дополнительные способы вызова:
- При вызове со стандартным вводом, подключенным к устройству tty, он запрашивает команды и выполняет их до тех пор, пока не будет прочитан символ EOF (конец файла; вы можете создать его с помощью Ctrl-D в UNIX или Ctrl-Z, Enter в Windows).
- При вызове с именем файла в качестве аргумента или с файлом в качестве стандартного ввода, он считывает и выполняет скрипт из этого файла.
- При вызове с именем каталога в качестве аргумента, он считывает и выполняет соответствующим образом названный скрипт из этого каталога.
- При вызове с
-c command, он выполняет указанные как команда операторы Python. Здесь команда может содержать несколько операторов, разделённых символами новой строки. В операторах Python важны начальные пробелы! - При вызове с
-m module-name, указанный модуль ищется по пути модулей Python и выполняется как скрипт.
В неинтерактивном режиме весь ввод парсится перед выполнением.
Параметр интерфейса завершает список параметров, используемых интерпретатором; все последующие аргументы окажутся в sys.argv — обратите внимание, что первый элемент, с индексом ноль (sys.argv[0]), — строка, отражающая источник программы.
-
-c <command> -
Выполнить код Python в команде. Команда может содержать один или несколько операторов, разделённых символами новой строки; начальные пробелы важны, как и в обычном коде модуля.
Если этот параметр указан, первый элемент
sys.argvбудет"-c", а текущая директория будет добавлена в началоsys.path(чтобы модули в этой директории можно было импортировать как модули верхнего уровня).Вызывает событие аудита
cpython.run_commandс аргументомcommand.
-
-m <module-name> -
Ищет указанный модуль в
sys.pathи выполняет его содержимое в качестве модуля__main__.Поскольку аргумент — это имя модуля, вам не нужно указывать расширение файла (
.py). Имя модуля должно быть корректным абсолютным именем модуля Python, но реализация не всегда проверяет это (например, она может разрешить использование имени, включающего дефис).Допускаются также имена пакетов (включая пакеты пространства имён). Если вместо обычного имени модуля указано имя пакета, интерпретатор выполнит
<pkg>.__main__как основной модуль. Это поведение намеренно аналогично обработке каталогов и zip-архивов, которые передаются интерпретатору в качестве аргумента скрипта.Примечание
Этот параметр нельзя использовать с встроенными модулями и модулями расширения, написанными на C, поскольку у них нет файлов модулей Python. Однако его можно использовать для предварительно скомпилированных модулей, даже если исходный исходный файл недоступен.
Если этот параметр указан, первый элемент
sys.argvбудет полным путем к файлу модуля (в то время как модуль ищется, первый элемент будет установлен в"-m"). Как и с параметром-c, текущая директория добавляется в началоsys.path.Параметр
-Iможет использоваться для запуска скрипта в изолированном режиме, гдеsys.pathне содержит ни текущей директории, ни каталога site-packages пользователя. Также игнорируются все переменные окруженияPYTHON*.Многие стандартные библиотечные модули содержат код, который вызывается при их выполнении как скрипт. Пример — модуль
timeit:python -m timeit -s "setup here" "benchmarked code here" python -m timeit -h # for details
Вызывает событие аудита
cpython.run_moduleс аргументомmodule-name.См. также
-
runpy.run_module() -
Эквивалентная функциональность, напрямую доступная коду Python
PEP 338 — Выполнение модулей как скриптов
Изменено в версии 3.1: Укажите имя пакета для запуска
__main__подмодуля.Изменено в версии 3.4: поддерживаются пакеты пространства имён
-
- -
-
Считывать команды из стандартного ввода (
sys.stdin). Если стандартный ввод — терминал, подразумевается-i.Если этот параметр указан, первый элемент
sys.argvбудет"-", а текущая директория будет добавлена в началоsys.path.Вызывает событие аудита
cpython.run_stdinбез аргументов.
- <script>
-
Выполнить код Python, содержащийся в скрипте, который должен быть путём к файлу в файловой системе (абсолютным или относительным), указывающим на файл Python, каталог, содержащий файл
__main__.pyили zip-архив, содержащий файл__main__.py.Если этот параметр указан, первый элемент
sys.argvбудет именем скрипта, заданным в командной строке.Если имя скрипта указывает непосредственно на файл Python, каталог, содержащий этот файл, добавляется в начало
sys.path, и файл выполняется как модуль__main__.Если имя скрипта указывает на каталог или zip-архив, имя скрипта добавляется в начало
sys.pathи файл__main__.pyв этом месте выполняется как модуль__main__.Параметр
-Iможет использоваться для запуска скрипта в изолированном режиме, гдеsys.pathне содержит ни каталога скрипта, ни каталога site-packages пользователя. Все переменные окруженияPYTHON*также игнорируются.Вызывает событие аудита
cpython.run_fileс аргументомfilename.См. также
-
runpy.run_path() -
Эквивалентная функциональность, напрямую доступная коду Python
-
Если не указан ни один параметр интерфейса, подразумевается -i, sys.argv[0] пустая строка ("") и текущая директория добавляется в начало sys.path. Также автоматически включена автодополнение и редактирование истории, если это доступно на вашей платформе (см. Настройка Readline).
См. также
Изменено в версии 3.4: Автоматическое включение автодополнения и редактирования истории.
1.1.2. Общие параметры
-
-? -
-h -
--help -
Вывести краткое описание всех параметров командной строки и соответствующих переменных окружения и завершить работу.
-
--help-env -
Вывести краткое описание переменных окружения, специфичных для Python, и завершить работу.
Добавлен в версии 3.11.
-
--help-xoptions -
Вывести описание параметров, специфичных для реализации
-X, и завершить работу.Добавлен в версии 3.11.
-
--help-all -
Вывести полную информацию об использовании и завершить работу.
Добавлен в версии 3.11.
-
-V -
--version -
Вывести номер версии Python и завершить работу. Пример вывода:
Python 3.8.0b2+
При использовании дважды, вывести больше информации о сборке, например:
Python 3.8.0b2+ (3.8:0c076caaa8, Apr 20 2019, 21:55:00) [GCC 6.2.0 20161005]
Добавлен в версии 3.6: Параметр
-VV.
1.1.3. Дополнительные параметры
-
-b -
Выводить предупреждение при преобразовании
bytesилиbytearrayвstrбез указания кодировки или при сравненииbytesилиbytearrayсstrилиbytesсint. Выводить ошибку при указании параметра дважды (-bb).
-
-B -
При указании данного параметра Python не будет пытаться записать файлы
.pycпри импорте исходных модулей. См. такжеPYTHONDONTWRITEBYTECODE.
-
--check-hash-based-pycs default|always|never -
Управление поведением проверки файлов
.pycна основе хешей. См. Отмена кэширования байткода. При значенииdefault, проверяемые и непроверяемые кэшированные файлы байткода (hash-based) проверяются в соответствии со своими стандартными правилами. При значенииalways, все файлы.pycна основе хешей, как проверяемые, так и непроверяемые, проверяются по отношению к соответствующему исходному файлу. При значенииnever, файлы.pycна основе хешей не проверяются по отношению к соответствующим исходным файлам.Семантика файлов
.pycна основе времени не изменяется этим параметром.
-
-d -
Включение отладки синтаксического анализа (только для экспертов). См. также переменную среды
PYTHONDEBUG.Этот параметр требует отладочной сборки Python, в противном случае он игнорируется.
-
-E -
Игнорировать все переменные среды
PYTHON*, например,PYTHONPATHиPYTHONHOME, которые могут быть установлены.
-
-i -
Когда скрипт передаётся в качестве первого аргумента или используется параметр
-c, войти в интерактивный режим после выполнения скрипта или команды, даже еслиsys.stdinне является терминалом. ФайлPYTHONSTARTUPне читается.Это может быть полезно для проверки глобальных переменных или стека вызовов, когда скрипт вызывает исключение. См. также
PYTHONINSPECT.
-
-I -
Запуск Python в изолированном режиме. Это также подразумевает параметры
-E,-Pи-s.В изолированном режиме
sys.pathне содержит ни директорию скрипта, ни директорию пользовательских пакетов. Все переменные средыPYTHON*также игнорируются. Для предотвращения внедрения вредоносного кода могут быть наложены дополнительные ограничения.Добавлен в версии 3.4.
-
-O -
Удалить операторы assert и любой код, условный на значении
__debug__. Добавить префикс.opt-1к имени файла скомпилированных файлов (байткод) перед расширением.pyc(см. PEP 488). См. такжеPYTHONOPTIMIZE.Изменено в версии 3.5: Изменение имён файлов
.pycв соответствии с PEP 488.
-
-OO -
Выполнить
-Oи также удалить строки документации. Добавить префикс.opt-2к имени файла скомпилированных файлов (байткод) перед расширением.pyc(см. PEP 488).Изменено в версии 3.5: Изменение имён файлов
.pycв соответствии с PEP 488.
-
-P -
Не добавлять потенциально небезопасный путь к
sys.path:-
python -m moduleкомандная строка: Не добавлять текущую рабочую директорию. -
python script.pyкомандная строка: Не добавлять директорию скрипта. Если это символическая ссылка, разрешать символические ссылки. -
python -c codeиpython(REPL) командные строки: Не добавлять пустую строку, что означает текущую рабочую директорию.
См. также переменную среды
PYTHONSAFEPATHи параметры-Eи-I(изолированный режим).Добавлен в версии 3.11.
-
-
-q -
Не отображать сообщения об авторских правах и версии, даже в интерактивном режиме.
Добавлен в версии 3.2.
-
-R -
Включить случайное хеширование. Этот параметр действует только если переменная среды
PYTHONHASHSEEDимеет значение0, так как случайное хеширование включено по умолчанию.В предыдущих версиях Python этот параметр включал случайное хеширование, так что значения
__hash__()объектов str и bytes «засаливались» случайным значением, непредсказуемым для пользователя. Хотя они остаются постоянными в рамках отдельного процесса Python, они непредсказуемы при повторном запуске Python.Случайное хеширование призвано защитить от атаки отказа в обслуживании, вызванной тщательно выбранными входными данными, которые используют худший случай работы операции построения словаря (O(n2) сложность). Подробности см. на странице http://ocert.org/advisories/ocert-2011-003.html.
PYTHONHASHSEEDпозволяет установить фиксированное значение для секрета генератора хешей.Добавлен в версии 3.2.3.
Изменено в версии 3.7: Параметр больше не игнорируется.
-
-s -
Не добавлять
user site-packages directoryвsys.path.См. также
PYTHONNOUSERSITE.См. также
PEP 370 – Директория пользовательских пакетов
-
-S -
Отключить импорт модуля
siteи зависящие от сайта манипуляции сsys.path. Также отключить эти манипуляции, еслиsiteявно импортируется позже (вызовитеsite.main(), если хотите, чтобы они были выполнены).
-
-u -
Принудительно установить потоки stdout и stderr в небуферизованный режим. Этот параметр не влияет на поток stdin.
См. также
PYTHONUNBUFFERED.Изменено в версии 3.7: Текстовый слой потоков stdout и stderr теперь не буферизован.
-
-v -
Выводить сообщение каждый раз, когда модуль инициализируется, показывая место (имя файла или встроенный модуль), из которого он загружается. При указании дважды (
-vv) выводит сообщение для каждого файла, который проверяется при поиске модуля. Также предоставляет информацию об очистке модулей при выходе.Изменено в версии 3.10: Модуль
siteсообщает о сайтоспецифических путях и.pthобрабатываемых файлах.См. также
PYTHONVERBOSE.
-
-W arg -
Управление предупреждениями. Механизм предупреждений Python по умолчанию выводит сообщения о предупреждениях в
sys.stderr.Простейшие настройки применяют определённое действие ко всем предупреждениям, испущенным процессом (даже к тем, которые по умолчанию игнорируются):
-Wdefault # Warn once per call location -Werror # Convert to exceptions -Walways # Warn every time -Wall # Same as -Walways -Wmodule # Warn once per calling module -Wonce # Warn once per Python process -Wignore # Never warn
Имена действий можно сокращать по желанию, и интерпретатор преобразует их в соответствующее имя действия. Например,
-Wiэквивалентно-Wignore.Полный формат аргумента:
action:message:category:module:lineno
Пустые поля соответствуют всем значениям; конечные пустые поля можно опустить. Например,
-W ignore::DeprecationWarningигнорирует все предупреждения DeprecationWarning.Поле действие, как указано выше, применяется только к предупреждениям, соответствующим остальным полям.
Поле сообщение должно соответствовать всему сообщению о предупреждении; это соответствие не учитывает регистр.
Поле категория соответствует категории предупреждения (например,
DeprecationWarning). Это должно быть имя класса; тест на соответствие проверяет, является ли фактическая категория предупреждения сообщения подклассом указанной категории предупреждения.Поле модуль соответствует имени модуля (полное имя); это соответствие учитывает регистр.
Поле номер строки соответствует номеру строки, где ноль соответствует всем номерам строк и, следовательно, эквивалентно опущенному номеру строки.
Можно задать несколько параметров
-W; когда предупреждение соответствует нескольким параметрам, выполняется действие последнего соответствующего параметра. Некорректные параметры-Wигнорируются (хотя о некорректных параметрах выводится сообщение при появлении первого предупреждения).Управление предупреждениями также возможно с помощью переменной окружения
PYTHONWARNINGSи внутри программы Python с помощью модуляwarnings. Например, функцияwarnings.filterwarnings()может использоваться для применения регулярного выражения к сообщению о предупреждении.См. Фильтр предупреждений и Описание фильтров предупреждений для получения более подробной информации.
-
-x -
Пропустить первую строку исходного кода, что позволяет использовать не-Unix-варианты
#!cmd. Это предназначено только для решения специфической проблемы DOS.
-
-X -
Зарезервировано для различных опций, специфичных для реализации. В настоящее время CPython определяет следующие возможные значения:
-
-X faulthandlerдля включенияfaulthandler. См. такжеPYTHONFAULTHANDLER.Добавлена в версии 3.3.
-
-X showrefcountдля вывода общего счётчика ссылок и количества используемых блоков памяти при завершении программы или после каждой команды в интерактивном интерпретаторе. Это работает только в отладочных сборках.Добавлена в версии 3.4.
-
-X tracemallocдля начала отслеживания выделения памяти Python с использованием модуляtracemalloc. По умолчанию в трассировке исключения сохраняется только последний кадр. Используйте-X tracemalloc=NFRAMEдля начала отслеживания с ограничением трассировки на NFRAME кадров. См.tracemalloc.start()иPYTHONTRACEMALLOCдля получения дополнительной информации.Добавлена в версии 3.4.
-
-X int_max_str_digitsнастраивает ограничение длины преобразования целых чисел в строки. См. такжеPYTHONINTMAXSTRDIGITS.Добавлена в версии 3.11.
-
-X importtimeдля отображения продолжительности каждого импорта. Он отображает имя модуля, накопленное время (включая вложенные импорты) и собственное время (исключая вложенные импорты). Обратите внимание, что его вывод может быть разбит в многопоточной приложении. Типичное использование —python3 -X importtime -c 'import asyncio'. См. такжеPYTHONPROFILEIMPORTTIME.Добавлена в версии 3.7.
-
-X dev: включает режим разработки Python, вводя дополнительные проверки во время выполнения, которые слишком дороги для включения по умолчанию. См. такжеPYTHONDEVMODE.Добавлена в версии 3.7.
-
-X utf8включает режим UTF-8 Python.-X utf8=0явно отключает режим UTF-8 Python (даже когда он должен активироваться автоматически). См. такжеPYTHONUTF8.Добавлена в версии 3.7.
-
-X pycache_prefix=PATHпозволяет записывать.pycфайлы в параллельном дереве с корнем в указанном каталоге, вместо записи в дерево кода. См. такжеPYTHONPYCACHEPREFIX.Добавлена в версии 3.8.
-
-X warn_default_encodingвыводитEncodingWarningпри использовании локали-специфичной кодировки по умолчанию для открытия файлов. См. такжеPYTHONWARNDEFAULTENCODING.Добавлена в версии 3.10.
-
-X no_debug_rangesотключает включение таблиц, сопоставляющих дополнительную информацию о расположении (конец строки, смещение начала столбца и смещение конца столбца) с каждой инструкцией в объектах кода. Это полезно, когда требуются меньшие объекты кода и файлы pyc, а также для подавления дополнительных визуальных указателей расположения при отображении трассировок интерпретатором. См. такжеPYTHONNODEBUGRANGES.Добавлена в версии 3.11.
-
-X frozen_modulesопределяет, игнорируются ли замороженные модули механизмом импорта. Значение «вкл» означает, что они импортируются, а «выкл» означает, что они игнорируются. По умолчанию — «вкл», если это установленный Python (обычный случай). Если он находится в стадии разработки (запуск из дерева исходных кодов), то по умолчанию — «выкл». Обратите внимание, что замороженные модули «importlib_bootstrap» и «importlib_bootstrap_external» всегда используются, даже если этот флаг установлен в «выкл».Добавлена в версии 3.11.
-
-X perfвключает поддержку профилировщика Linuxperf. При указании этой опции профилировщикperfсможет сообщать о вызовах Python. Эта опция доступна только на некоторых платформах и ничего не сделает, если она не поддерживается текущей системой. Значение по умолчанию — «выкл». См. такжеPYTHONPERFSUPPORTи Поддержка Python для профилировщика perf Linux.Добавлена в версии 3.12.
Он также позволяет передавать произвольные значения и извлекать их через словарь
sys._xoptions.Добавлена в версии 3.2.
Изменено в версии 3.9: Удалена опция
-X showalloccount.Изменено в версии 3.10: Удалена опция
-X oldparser. -
1.1.4. Опции, которые следует использовать
-
-J -
Зарезервировано для использования Jython.
1.2. Переменные окружения
Эти переменные окружения влияют на поведение Python, они обрабатываются до командной строки, кроме -E или -I. Обычно, флаги командной строки переопределяют переменные окружения при конфликте.
-
PYTHONHOME -
Изменяет расположение стандартных библиотек Python. По умолчанию, библиотеки ищутся в
prefix/lib/pythonversionиexec_prefix/lib/pythonversion, гдеprefixиexec_prefix— зависящие от установки каталоги, по умолчанию равные/usr/local.Когда
PYTHONHOMEустановлена в один каталог, его значение заменяетprefixиexec_prefix. Чтобы указать разные значения, установитеPYTHONHOMEнаprefix:exec_prefix.
-
PYTHONPATH -
Расширяет стандартный путь поиска файлов модулей. Формат аналогичен пути командной оболочки
PATH: один или несколько путей каталогов, разделённыхos.pathsep(например, двоеточиями в Unix или точками с запятой в Windows). Отсутствующие каталоги игнорируются.В дополнение к обычным каталогам, отдельные записи в
PYTHONPATHмогут ссылаться на zip-архивы, содержащие чистые Python-модули (в исходной или скомпилированной форме). Модули расширений нельзя импортировать из zip-архивов.Стандартный путь поиска зависит от установки, но, как правило, начинается с
prefix/lib/pythonversion(см.PYTHONHOMEвыше). Он всегда добавляется кPYTHONPATH.Дополнительный каталог будет вставлен в пути поиска перед
PYTHONPATH, как описано выше в разделе Параметры интерфейса. Путь поиска можно изменить внутри программы Python как переменнуюsys.path.
-
PYTHONSAFEPATH -
Если это установлено в непустую строку, потенциально небезопасный путь не будет добавлен к
sys.path: см. параметр-Pдля деталей.Добавлен в версии 3.11.
-
PYTHONPLATLIBDIR -
Если установлено в непустую строку, оно переопределяет значение
sys.platlibdir.Добавлен в версии 3.9.
-
PYTHONSTARTUP -
Если это имя читаемого файла, команды Python в этом файле выполняются перед отображением первого приглашения в интерактивном режиме. Файл выполняется в том же пространстве имён, где выполняются интерактивные команды, так что объекты, определённые или импортированные в нём, могут использоваться без квалификации в интерактивной сессии. Вы также можете изменить приглашения
sys.ps1иsys.ps2и обработчикsys.__interactivehook__в этом файле.Вызывает событие аудита аудита
cpython.run_startupс именем файла в качестве аргумента при вызове во время запуска.
-
PYTHONOPTIMIZE -
Если установлено в непустую строку, оно эквивалентно указанию параметра
-O. Если установлено в целое число, оно эквивалентно многократному указанию параметра-O.
-
PYTHONBREAKPOINT -
Если установлено, оно задаёт вызываемый объект с использованием обозначений с точкой. Модуль, содержащий вызываемый объект, будет импортирован, а затем вызываемый объект будет запущен стандартной реализацией
sys.breakpointhook(), которая сама вызывается встроенной функциейbreakpoint(). Если не установлено или установлено в пустую строку, оно эквивалентно значению “pdb.set_trace”. Установка значения “0” заставляет стандартную реализациюsys.breakpointhook()ничего не делать, а сразу возвращаться.Добавлен в версии 3.7.
-
PYTHONDEBUG -
Если установлено в непустую строку, оно эквивалентно указанию параметра
-d. Если установлено в целое число, оно эквивалентно многократному указанию параметра-d.Эта переменная окружения требует отладки Python, в противном случае она игнорируется.
-
PYTHONINSPECT -
Если установлено в непустую строку, оно эквивалентно указанию параметра
-i.Эту переменную также можно изменить кодом Python, используя
os.environ, чтобы принудительно включить режим инспекции при завершении программы.Вызывает событие аудита аудита
cpython.run_stdinбез аргументов.Изменено в версии 3.12.5: (также 3.11.10, 3.10.15, 3.9.20 и 3.8.20) Вызывает события аудита.
-
PYTHONUNBUFFERED -
Если установлено в непустую строку, оно эквивалентно указанию параметра
-u.
-
PYTHONVERBOSE -
Если установлено в непустую строку, оно эквивалентно указанию параметра
-v. Если установлено в целое число, оно эквивалентно многократному указанию параметра-v.
-
PYTHONCASEOK -
Если установлено, Python игнорирует регистр в операторах
import. Это работает только в Windows и macOS.
-
PYTHONDONTWRITEBYTECODE -
Если установлено в непустую строку, Python не будет пытаться записать файлы
.pycпри импорте исходных модулей. Это эквивалентно указанию параметра-B.
-
PYTHONPYCACHEPREFIX -
Если установлено, Python будет записывать файлы
.pycв зеркальном каталоге по этому пути, вместо каталогов__pycache__внутри дерева исходных кодов. Это эквивалентно указанию параметра-Xpycache_prefix=PATH.Добавлен в версии 3.8.
-
PYTHONHASHSEED -
Если переменная не установлена или установлена в
random, для вычисления хэшей объектов str и bytes используется случайное значение.Если
PYTHONHASHSEEDустановлена в целое число, оно используется в качестве фиксированного значения для генерации хэшей() типов, охватываемых случайным выбором хэшей.Его назначение — обеспечить повторяемость хэширования, например, для самотестов самого интерпретатора или для того, чтобы группа процессов Python могли использовать общие значения хэшей.
Целое число должно быть десятичным числом в диапазоне [0,4294967295]. Установка значения 0 отключит случайное хэширование.
Добавлен в версии 3.2.3.
-
PYTHONINTMAXSTRDIGITS -
Если эта переменная установлена в целое число, она используется для настройки глобального ограничения длина целых строк интерпретатора.
Добавлен в версии 3.11.
-
PYTHONIOENCODING -
Если это значение задано перед запуском интерпретатора, оно переопределяет кодировку, используемую для stdin/stdout/stderr, в формате
encodingname:errorhandler. Обе частиencodingnameи:errorhandlerнеобязательны и имеют такое же значение, как и вstr.encode().Для stderr часть
:errorhandlerигнорируется; обработчик всегда будет'backslashreplace'.Изменено в версии 3.4: Часть
encodingnameтеперь необязательна.Изменено в версии 3.6: В Windows кодировка, заданная этой переменной, игнорируется для буферов интерактивной консоли, если не задана также
PYTHONLEGACYWINDOWSSTDIO. Файлы и конвейеры, перенаправленные через стандартные потоки, не затрагиваются.
-
PYTHONNOUSERSITE -
Если это значение задано, Python не добавит
user site-packages directoryвsys.path.См. также
PEP 370 – Каталог site-packages по пользователю
-
PYTHONUSERBASE -
Определяет
user base directory, который используется для вычисления пути кuser site-packages directoryи путей установки дляpython -m pip install --user.См. также
PEP 370 – Каталог site-packages по пользователю
-
PYTHONEXECUTABLE -
Если эта переменная окружения задана,
sys.argv[0]будет установлено в её значение вместо значения, полученного через C-runtime. Действует только на macOS.
-
PYTHONWARNINGS -
Это эквивалентно опции
-W. Если задано в виде строки, разделённой запятыми, это эквивалентно многократному указанию опции-W, при этом фильтры в конце списка имеют приоритет над теми, что в начале.Самые простые настройки применяют определённое действие безусловно ко всем предупреждениям, выводимым процессом (даже к тем, которые по умолчанию игнорируются):
PYTHONWARNINGS=default # Warn once per call location PYTHONWARNINGS=error # Convert to exceptions PYTHONWARNINGS=always # Warn every time PYTHONWARNINGS=all # Same as PYTHONWARNINGS=always PYTHONWARNINGS=module # Warn once per calling module PYTHONWARNINGS=once # Warn once per Python process PYTHONWARNINGS=ignore # Never warn
Для получения более подробной информации см. Фильтр предупреждений и Описание фильтров предупреждений.
-
PYTHONFAULTHANDLER -
Если эта переменная окружения установлена в непустую строку,
faulthandler.enable()вызывается при запуске: устанавливает обработчик для сигналовSIGSEGV,SIGFPE,SIGABRT,SIGBUSиSIGILLдля вывода отладки Python. Это эквивалентно опции-Xfaulthandler.Добавлена в версии 3.3.
-
PYTHONTRACEMALLOC -
Если эта переменная окружения установлена в непустую строку, начинается отслеживание выделения памяти Python с помощью модуля
tracemalloc. Значение переменной — максимальное количество кадров, хранимых в отладке ошибки. Например,PYTHONTRACEMALLOC=1хранит только последний кадр. Для получения дополнительной информации см. функциюtracemalloc.start(). Это эквивалентно установке опции-Xtracemalloc.Добавлена в версии 3.4.
-
PYTHONPROFILEIMPORTTIME -
Если эта переменная окружения установлена в непустую строку, Python отобразит время выполнения каждого импорта. Это эквивалентно установке опции
-Ximporttime.Добавлена в версии 3.7.
-
PYTHONASYNCIODEBUG -
Если эта переменная окружения установлена в непустую строку, включить режим отладки режим отладки модуля
asyncio.Добавлена в версии 3.4.
-
PYTHONMALLOC -
Устанавливает аллокаторы памяти Python и/или устанавливает отладочные крючки.
Устанавливает семейство аллокаторов памяти, используемых Python:
-
default: использовать аллокаторы памяти по умолчанию. -
malloc: использовать функциюmalloc()C-библиотеки для всех областей (PYMEM_DOMAIN_RAW,PYMEM_DOMAIN_MEM,PYMEM_DOMAIN_OBJ). -
pymalloc: использовать аллокатор pymalloc для областейPYMEM_DOMAIN_MEMиPYMEM_DOMAIN_OBJи использовать функциюmalloc()для областиPYMEM_DOMAIN_RAW.
Установка отладочных крючков:
-
debug: установить отладочные крючки поверх аллокаторов памяти по умолчанию. -
malloc_debug: аналогичноmalloc, но также установить отладочные крючки. -
pymalloc_debug: аналогичноpymalloc, но также установить отладочные крючки.
Добавлена в версии 3.6.
Изменено в версии 3.7: Добавлен аллокатор
"default". -
-
PYTHONMALLOCSTATS -
Если установлено в непустую строку, Python будет печатать статистику аллокатора памяти pymalloc каждый раз при создании новой области арени объекта pymalloc и при завершении работы.
Эта переменная игнорируется, если переменная окружения
PYTHONMALLOCиспользуется для принудительного использования аллокатораmalloc()C-библиотеки или если Python сконфигурирован без поддержкиpymalloc.Изменено в версии 3.6: Эта переменная теперь также может использоваться в режиме Python, скомпилированном в релизном варианте. Теперь не имеет эффекта, если установлена в пустую строку.
-
PYTHONLEGACYWINDOWSFSENCODING -
Если установлено ненулевое значение, то режим по умолчанию кодировки файловой системы и обработчика ошибок вернётся к значениям ‘mbcs’ и ‘replace’ соответственно, предшествующим версии 3.6. В противном случае используются новые значения по умолчанию ‘utf-8’ и ‘surrogatepass’.
Это также можно включить во время выполнения с помощью
sys._enablelegacywindowsfsencoding().Доступность: Windows.
Добавлен в версии 3.6: См. PEP 529 для получения более подробной информации.
-
PYTHONLEGACYWINDOWSSTDIO -
Если установлено ненулевое значение, не используется новый консольный читатель и писатель. Это означает, что символы Юникода будут закодированы в соответствии с активной кодовой страницей консоли, а не с использованием utf-8.
Эта переменная игнорируется, если стандартные потоки перенаправлены (в файлы или каналы) вместо обращения к буферам консоли.
Доступность: Windows.
Добавлен в версии 3.6.
-
PYTHONCOERCECLOCALE -
Если установлено значение
0, основное приложение командной строки Python пропустит принудительное преобразование устаревших локалей C и POSIX, основанных на ASCII, в более совершенную альтернативу на основе UTF-8.Если эта переменная не установлена (или установлена на значение, отличное от
0), переменная среды переопределения локалиLC_ALLтакже не устанавливается, и текущая локаль, сообщаемая для категорииLC_CTYPE, — это либо локаль по умолчаниюC, либо явно локаль на основе ASCIIPOSIX, затем CLI Python попытается настроить следующие локали для категорииLC_CTYPEв указанном порядке перед загрузкой среды интерпретатора:C.UTF-8C.utf8UTF-8
Если настройка одной из этих категорий локалей завершится успешно, переменная среды
LC_CTYPEтакже будет соответствующим образом установлена в текущей среде процесса перед инициализацией среды выполнения Python. Это гарантирует, что обновлённое значение будет видно как интерпретатором, так и другими компонентами, использующими локаль, работающими в том же процессе (например, библиотекой GNUreadline), а также в дочерних процессах (независимо от того, запускают ли эти процессы интерпретатор Python), а также в операциях, которые запрашивают среду, а не текущую локаль C (например, собственный методlocale.getdefaultlocale()Python).Настройка одной из этих локалей (явно или через приведенное выше неявное принудительное преобразование локалей) автоматически включает обработчик ошибок
surrogateescapeобработчика ошибок дляsys.stdinиsys.stdout(sys.stderrпо-прежнему используетbackslashreplaceкак в любой другой локали). Это поведение обработки потоков можно переопределить с помощьюPYTHONIOENCODING, как обычно.В отладочных целях установка
PYTHONCOERCECLOCALE=warnзаставит Python выводить сообщения об ошибках вstderr, если либо принудительное преобразование локалей активировано, либо же если локаль, которая должна была вызвать принудительное преобразование, по-прежнему активна при инициализации среды выполнения Python.Обратите также внимание, что даже при отключённом принудительном преобразовании локалей или при его неудаче в поиске подходящей целевой локали
PYTHONUTF8по-прежнему будет активироваться по умолчанию в устаревших локалях на основе ASCII. Оба параметра должны быть отключены, чтобы заставить интерпретатор использоватьASCIIвместоUTF-8для системных интерфейсов.Доступность: Unix.
Добавлен в версии 3.7: См. PEP 538 для получения более подробной информации.
-
PYTHONDEVMODE -
Если эта переменная среды установлена в ненулевое значение, включить Режим разработки Python, вводя дополнительные проверки во время выполнения, которые слишком дорогостоящие для включения по умолчанию. Это эквивалентно установке параметра
-Xdev.Добавлен в версии 3.7.
-
PYTHONUTF8 -
Если установлено значение
1, включить режим Python UTF-8.Если установлено значение
0, отключить режим Python UTF-8.Установка любого другого ненулевого значения вызывает ошибку во время инициализации интерпретатора.
Добавлен в версии 3.7.
-
PYTHONWARNDEFAULTENCODING -
Если эта переменная среды установлена в ненулевое значение, выводится предупреждение
EncodingWarningпри использовании кодировки по умолчанию, специфичной для локали.См. Включённое предупреждение EncodingWarning для получения подробностей.
Добавлен в версии 3.10.
-
PYTHONNODEBUGRANGES -
Если эта переменная установлена, это отключает включение таблиц, сопоставляющих дополнительные сведения о расположении (конец строки, смещение начальной колонки и смещение конечной колонки) каждой инструкции в объектах кода. Это полезно, когда требуются более компактные объекты кода и файлы pyc, а также при подавлении дополнительных визуальных индикаторов расположения, когда интерпретатор отображает отладочные сообщения.
Добавлен в версии 3.11.
-
PYTHONPERFSUPPORT -
Если эта переменная установлена в ненулевое значение, это включает поддержку профилировщика Linux
perf, чтобы Python вызовы могли быть обнаружены им.Если установлено значение
0, отключение поддержки профилировщика Linuxperf.См. также параметр командной строки
-X perfи Поддержка Python для профилировщика Linux perf.Добавлен в версии 3.12.
1.2.1. Переменные режима отладки
-
PYTHONDUMPREFS -
Если установлена, Python будет выводить объекты и счётчики ссылок, которые всё ещё живы после завершения работы интерпретатора.
Требуется настройка Python с параметром сборки
--with-trace-refs.
-
PYTHONDUMPREFSFILE=FILENAME -
Если установлена, Python будет выводить объекты и счётчики ссылок, которые всё ещё живы после завершения работы интерпретатора, в файл под названием FILENAME.
Требуется настройка Python с параметром сборки
--with-trace-refs.Добавлен в версии 3.11.
© 2001–2024 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.12/using/cmdline.html