cmdline.md · Markdown – Документация Python
Документация Python неофициальный перевод

cmdline.md

425 строк · 38.7 КБ · обычная страница · сырой текст · скачать

1> **Источник:** https://python-all.ru/3.4/using/cmdline.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# 1. Командная строка и окружение89Интерпретатор CPython сканирует командную строку и окружение на предмет различных настроек.1011**Особенности реализации CPython:** схемы командной строки других реализаций могут отличаться. Для получения дополнительных сведений см. [*Альтернативные реализации*](https://python-all.ru/3.4/reference/introduction.html#implementations).1213## 1.1. Командная строка1415При запуске Python можно указать любые из этих опций:1617```sh18python [-bBdEhiIOqsSuvVWx?] [-c command | -m module-name | script | - ] [args]19```2021Наиболее распространённый вариант использования – это простой запуск скрипта:2223```sh24python myscript.py25```2627### 1.1.1. Параметры интерфейса2829Интерфейс интерпретатора напоминает интерфейс командной оболочки UNIX, но предоставляет дополнительные способы запуска:3031- При вызове со стандартным вводом, подключённым к tty-устройству, интерпретатор выводит приглашение для команд и выполняет их до тех пор, пока не будет прочитан EOF (символ конца файла; его можно ввести с помощью `Ctrl-D` на UNIX или `Ctrl-Z, Enter` на Windows).32- При вызове с именем файла в качестве аргумента или с файлом в качестве стандартного ввода он читает и выполняет скрипт из этого файла.33- При вызове с именем каталога в качестве аргумента он читает и выполняет соответствующий скрипт из этого каталога.34- При вызове с `-c command` интерпретатор выполняет инструкции Python, указанные в *command*. Эта *command* может содержать несколько инструкций, разделённых символами новой строки. Начальные пробелы в инструкциях Python имеют значение!35- При вызове с `-m module-name` интерпретатор находит указанный модуль по пути Python и выполняет его как скрипт.3637В неинтерактивном режиме весь ввод анализируется до его выполнения.3839Опция интерфейса завершает список опций, обрабатываемых интерпретатором; все последующие аргументы попадают в [`sys.argv`](https://python-all.ru/3.4/library/sys.html#sys.argv) – обратите внимание, что первый элемент с индексом ноль (`sys.argv[0]`) – это строка, отражающая источник программы.4041#### `-c <command>`4243Выполняет код Python, указанный в *command*. *command* может содержать одну или несколько инструкций, разделённых переводами строк; начальные пробелы, как и в обычном коде модуля, имеют значение.4445Если указана эта опция, первым элементом [`sys.argv`](https://python-all.ru/3.4/library/sys.html#sys.argv) будет `"-c"`, а текущий каталог будет добавлен в начало [`sys.path`](https://python-all.ru/3.4/library/sys.html#sys.path) (что позволит импортировать модули из этого каталога как модули верхнего уровня).4647#### `-m <module-name>`4849Ищет указанный модуль в [`sys.path`](https://python-all.ru/3.4/library/sys.html#sys.path) и выполняет его содержимое как модуль [`__main__`](https://python-all.ru/3.4/library/__main__.html#module-__main__).5051Поскольку аргументом является имя *модуля*, не следует указывать расширение файла (`.py`). Имя `module-name` должно быть допустимым именем модуля Python, хотя реализация может не всегда это контролировать (например, может позволить использовать имя, содержащее дефис).5253Имена пакетов (включая пакеты пространств имён) также допускаются. Если вместо обычного модуля указано имя пакета, интерпретатор выполнит `<pkg>.__main__` в качестве главного модуля. Такое поведение намеренно похоже на обработку каталогов и zip-файлов, передаваемых интерпретатору в качестве аргумента-скрипта.5455> **Примечание**56>57> Эту опцию нельзя использовать со встроенными модулями и модулями расширения, написанными на C, поскольку у них нет файлов модулей Python. Однако её можно использовать для предварительно скомпилированных модулей, даже если исходный файл недоступен.5859Если указана эта опция, первым элементом [`sys.argv`](https://python-all.ru/3.4/library/sys.html#sys.argv) будет полный путь к файлу модуля (пока файл модуля находится, первым элементом будет `"-m"`). Как и в случае с опцией [*-c*](https://python-all.ru/3.4/using/cmdline.html#cmdoption-c), текущий каталог будет добавлен в начало [`sys.path`](https://python-all.ru/3.4/library/sys.html#sys.path).6061Многие модули стандартной библиотеки содержат код, который вызывается при их выполнении как скрипта. Примером может служить модуль [`timeit`](https://python-all.ru/3.4/library/timeit.html#module-timeit):6263```sh64python -mtimeit -s 'setup here' 'benchmarked code here'65python -mtimeit -h # подробнее66```6768> **См. также**69>70> **[`runpy.run_module()`](https://python-all.ru/3.4/library/runpy.html#runpy.run_module)**71>72> Эквивалентная функциональность, доступная напрямую из кода Python73>74> [**PEP 338**](https://python-all.ru/3.4/using/cmdline.html) – Выполнение модулей как сценариев7576Изменено в версии 3.1: Укажите имя пакета для запуска подмодуля `__main__`.7778Изменено в версии 3.4: также поддерживаются пространственные пакеты7980#### `-`8182Читает команды из стандартного ввода ([`sys.stdin`](https://python-all.ru/3.4/library/sys.html#sys.stdin)). Если стандартный ввод – терминал, подразумевается опция [*-i*](https://python-all.ru/3.4/using/cmdline.html#cmdoption-i).8384Если указана эта опция, первым элементом [`sys.argv`](https://python-all.ru/3.4/library/sys.html#sys.argv) будет `"-"`, а текущий каталог будет добавлен в начало [`sys.path`](https://python-all.ru/3.4/library/sys.html#sys.path).8586#### `<script>`8788Выполняет код Python, содержащийся в *script*, который должен быть путём в файловой системе (абсолютным или относительным) и ссылаться на файл Python, каталог с файлом `__main__.py` или zip-файл с файлом `__main__.py`.8990Если указана эта опция, первым элементом [`sys.argv`](https://python-all.ru/3.4/library/sys.html#sys.argv) будет имя скрипта, указанное в командной строке.9192Если имя скрипта напрямую ссылается на файл Python, каталог, содержащий этот файл, добавляется в начало [`sys.path`](https://python-all.ru/3.4/library/sys.html#sys.path), и файл выполняется как модуль [`__main__`](https://python-all.ru/3.4/library/__main__.html#module-__main__).9394Если имя скрипта ссылается на каталог или zip-файл, имя скрипта добавляется в начало [`sys.path`](https://python-all.ru/3.4/library/sys.html#sys.path), а файл `__main__.py` из этого каталога выполняется как модуль [`__main__`](https://python-all.ru/3.4/library/__main__.html#module-__main__).9596> **См. также**97>98> **[`runpy.run_path()`](https://python-all.ru/3.4/library/runpy.html#runpy.run_path)**99>100> Эквивалентная функциональность, доступная напрямую из кода Python101102Если не указана ни одна опция интерфейса, подразумевается опция [*-i*](https://python-all.ru/3.4/using/cmdline.html#cmdoption-i), `sys.argv[0]` представляет собой пустую строку (`""`), а текущий каталог добавляется в начало [`sys.path`](https://python-all.ru/3.4/library/sys.html#sys.path). Кроме того, автоматически включается автодополнение по табуляции и редактирование истории, если это доступно на вашей платформе (см. [*Readline configuration*](https://python-all.ru/3.4/library/site.html#rlcompleter-config)).103104> **См. также**105>106> [*Запуск интерпретатора*](https://python-all.ru/3.4/tutorial/interpreter.html#tut-invoking)107108Изменено в версии 3.4: Автоматическое включение автодополнения по табуляции и редактирования истории.109110### 1.1.2. Общие параметры111112#### `-?`113114#### `-h`115116#### `--help`117118Выводит краткое описание всех параметров командной строки.119120#### `-V`121122#### `--version`123124Выводит номер версии Python и завершает работу. Пример вывода:125126```sh127Python 3.0128```129130### 1.1.3. Прочие параметры131132#### `-b`133134Выдаёт предупреждение при сравнении str и bytes. Выдаёт ошибку, если опция указана дважды (*-bb*).135136#### `-B`137138При указании этой опции Python не будет пытаться записывать файлы `.pyc` или `.pyo` при импорте исходных модулей. См. также [`PYTHONDONTWRITEBYTECODE`](https://python-all.ru/3.4/using/cmdline.html#envvar-PYTHONDONTWRITEBYTECODE).139140#### `-d`141142Включает отладочный вывод парсера (только для экспертов, зависит от опций компиляции). См. также [`PYTHONDEBUG`](https://python-all.ru/3.4/using/cmdline.html#envvar-PYTHONDEBUG).143144#### `-E`145146Игнорирует все переменные среды `PYTHON*`, например [`PYTHONPATH`](https://python-all.ru/3.4/using/cmdline.html#envvar-PYTHONPATH) и [`PYTHONHOME`](https://python-all.ru/3.4/using/cmdline.html#envvar-PYTHONHOME), которые могут быть установлены.147148#### `-i`149150Если скрипт передан в качестве первого аргумента или используется опция [*-c*](https://python-all.ru/3.4/using/cmdline.html#cmdoption-c), переходит в интерактивный режим после выполнения скрипта или команды, даже если [`sys.stdin`](https://python-all.ru/3.4/library/sys.html#sys.stdin) не является терминалом. Файл [`PYTHONSTARTUP`](https://python-all.ru/3.4/using/cmdline.html#envvar-PYTHONSTARTUP) не читается.151152Это может быть полезно для проверки глобальных переменных или трассировки стека, когда скрипт вызывает исключение. См. также [`PYTHONINSPECT`](https://python-all.ru/3.4/using/cmdline.html#envvar-PYTHONINSPECT).153154#### `-I`155156Запускает Python в изолированном режиме. Это также подразумевает -E и -s. В изолированном режиме [`sys.path`](https://python-all.ru/3.4/library/sys.html#sys.path) не содержит ни каталог скрипта, ни каталог site-packages пользователя. Все переменные среды `PYTHON*` также игнорируются. Могут быть наложены дополнительные ограничения для предотвращения внедрения пользователем вредоносного кода.157158Новое в версии 3.4.159160#### `-O`161162Включает базовые оптимизации. Это изменяет расширение файлов для скомпилированных ([*байткод*](https://python-all.ru/3.4/glossary.html#term-bytecode)) файлов с `.pyc` на `.pyo`. См. также [`PYTHONOPTIMIZE`](https://python-all.ru/3.4/using/cmdline.html#envvar-PYTHONOPTIMIZE).163164#### `-OO`165166Отбрасывает строки документации в дополнение к оптимизациям [*-O*](https://python-all.ru/3.4/using/cmdline.html#cmdoption-O).167168#### `-q`169170Не выводить сообщения об авторских правах и версии, даже в интерактивном режиме.171172Новое в версии 3.2.173174#### `-R`175176Сохранено для совместимости. Начиная с Python 3.3, рандомизация хешей включена по умолчанию.177178В предыдущих версиях Python эта опция включает рандомизацию хешей, так что значения [`__hash__()`](https://python-all.ru/3.4/reference/datamodel.html#object.__hash__) для str, bytes и datetime «солятся» непредсказуемым случайным значением. Хотя они остаются постоянными в рамках одного процесса Python, они не являются предсказуемыми между повторными запусками Python.179180Хэш-рандомизация предназначена для защиты от отказа в обслуживании, вызванного тщательно подобранными входными данными, которые используют наихудшую производительность построения словаря (сложность O(n²)). Подробнее см. [http://www.ocert.org/advisories/ocert-2011-003.html](https://python-all.ru/3.4/using/cmdline.html).181182[`PYTHONHASHSEED`](https://python-all.ru/3.4/using/cmdline.html#envvar-PYTHONHASHSEED) позволяет задать фиксированное значение для секретного зерна хеша.183184Новое в версии 3.2.3.185186#### `-s`187188Не добавляет [`user site-packages каталог`](https://python-all.ru/3.4/library/site.html#site.USER_SITE) в [`sys.path`](https://python-all.ru/3.4/library/sys.html#sys.path).189190> **См. также**191>192> [**PEP 370**](https://python-all.ru/3.4/using/cmdline.html) – Каталог site-packages для каждого пользователя193194#### `-S`195196Отключает импорт модуля [`site`](https://python-all.ru/3.4/library/site.html#module-site) и связанные с ним манипуляции с [`sys.path`](https://python-all.ru/3.4/library/sys.html#sys.path). Также отключает эти манипуляции, если [`site`](https://python-all.ru/3.4/library/site.html#module-site) явно импортирован позже (вызовите [`site.main()`](https://python-all.ru/3.4/library/site.html#site.main), чтобы их запустить).197198#### `-u`199200Принудительно устанавливает отсутствие буферизации для двоичного слоя потоков stdout и stderr (который доступен как их атрибут `buffer`). Текстовый слой ввода-вывода по-прежнему будет буферизирован построчно при записи в консоль или блочно-буферизирован при перенаправлении в неинтерактивный файл.201202См. также [`PYTHONUNBUFFERED`](https://python-all.ru/3.4/using/cmdline.html#envvar-PYTHONUNBUFFERED).203204#### `-v`205206Выводит сообщение каждый раз при инициализации модуля, показывая место (имя файла или встроенный модуль), из которого он загружается. При указании дважды (*-vv*) выводит сообщение для каждого файла, который проверяется при поиске модуля. Также предоставляет информацию об очистке модулей при завершении. См. также [`PYTHONVERBOSE`](https://python-all.ru/3.4/using/cmdline.html#envvar-PYTHONVERBOSE).207208#### `-W arg`209210Управление предупреждениями. Механизм предупреждений Python по умолчанию выводит сообщения предупреждений в [`sys.stderr`](https://python-all.ru/3.4/library/sys.html#sys.stderr). Типичное сообщение предупреждения имеет следующую форму:211212```sh213file:line: category: message214```215216По умолчанию каждое предупреждение выводится один раз для каждой строки исходного кода, в которой оно возникает. Этот параметр управляет частотой вывода предупреждений.217218Может быть указано несколько опций [*-W*](https://python-all.ru/3.4/using/cmdline.html#cmdoption-W); если предупреждение соответствует более чем одной опции, выполняется действие для последней подходящей опции. Недействительные опции [*-W*](https://python-all.ru/3.4/using/cmdline.html#cmdoption-W) игнорируются (хотя сообщение предупреждения о недействительных опциях выводится при первом предупреждении).219220Предупреждения также можно контролировать из программы Python с помощью модуля [`warnings`](https://python-all.ru/3.4/library/warnings.html#module-warnings).221222Простейшая форма аргумента – одна из следующих строк действий (или\\nуникальное сокращение):223224**`ignore`**225226Игнорировать все предупреждения.227228**`default`**229230Явно запросить поведение по умолчанию (вывод каждого предупреждения один раз на\\nстроку исходного кода).231232**`все`**233234Выводить предупреждение при каждом его появлении (это может породить много сообщений, если\\nпредупреждение вызывается многократно для одной и той же строки, например, внутри\\nцикла).235236**`модуль`**237238Выводить каждое предупреждение только при первом появлении в каждом модуле.239240**`однократно`**241242Выводить каждое предупреждение только при первом появлении в программе.243244**`ошибка`**245246Возбуждать исключение вместо вывода предупреждения.247248Полная форма аргумента:249250```sh251action:message:category:module:line252```253254Здесь *action* (действие) как описано выше, но применяется только к сообщениям, соответствующим\\nостальным полям. Пустые поля соответствуют любым значениям; конечные пустые поля можно\\nопускать. Поле *message* соответствует началу выводимого сообщения\\nпредупреждения; сравнение нечувствительно к регистру. Поле *category* соответствует\\nкатегории предупреждения. Это должно быть имя класса; при сравнении проверяется,\\nявляется ли фактическая категория предупреждения сообщения подклассом указанной\\nкатегории. Необходимо указывать полное имя класса. Поле *module* соответствует\\n(полному) имени модуля; сравнение чувствительно к регистру. Поле *line*\\nсоответствует номеру строки; ноль соответствует всем номерам строк и, таким образом,\\nэквивалентен отсутствующему номеру строки.255256> **См. также**257>258> [`warnings`](https://python-all.ru/3.4/library/warnings.html#module-warnings) – модуль warnings259>260> [**PEP 230**](https://python-all.ru/3.4/using/cmdline.html) – инфраструктура предупреждений261>262> [`PYTHONWARNINGS`](https://python-all.ru/3.4/using/cmdline.html#envvar-PYTHONWARNINGS)263264#### `-x`265266Пропускает первую строку исходного файла, позволяя использовать не-Unix формы `#!cmd`. Это предназначено только для специфичного для DOS хака.267268> **Примечание**269>270> Номера строк в сообщениях об ошибках будут смещены на единицу.271272#### `-X`273274Зарезервировано для различных опций, специфичных для реализации. В настоящее время CPython определяет следующие возможные значения:275276- `-X faulthandler` для включения [`faulthandler`](https://python-all.ru/3.4/library/faulthandler.html#module-faulthandler);277- `-X showrefcount` для включения вывода общего количества ссылок и блоков памяти (работает только в отладочных сборках);278- `-X tracemalloc` для запуска отслеживания выделений памяти Python с помощью модуля [`tracemalloc`](https://python-all.ru/3.4/library/tracemalloc.html#module-tracemalloc). По умолчанию в трассировке сохраняется только последний кадр. Используйте `-X tracemalloc=NFRAME` для начала трассировки с ограничением в *NFRAME* кадров. Подробнее см. [`tracemalloc.start()`](https://python-all.ru/3.4/library/tracemalloc.html#tracemalloc.start).279280Также позволяет передавать произвольные значения и извлекать их через словарь [`sys._xoptions`](https://python-all.ru/3.4/library/sys.html#sys._xoptions).281282Изменено в версии 3.2: Теперь допускается передача [*-X*](https://python-all.ru/3.4/using/cmdline.html#cmdoption-X) в CPython.283284Новое в версии 3.3: Опция `-X faulthandler`.285286Новое в версии 3.4: Опции `-X showrefcount` и `-X tracemalloc`.287288### 1.1.4. Параметры, которые не следует использовать289290#### `-J`291292Зарезервировано для [Jython](https://python-all.ru/3.4/using/cmdline.html).293294## 1.2. Переменные окружения295296Эти переменные окружения влияют на поведение Python, они обрабатываются до параметров командной строки, кроме -E или -I. Принято, что параметры командной строки переопределяют переменные окружения в случае конфликта.297298**`PYTHONHOME`**299300Изменяет расположение стандартных библиотек Python. По умолчанию библиотеки ищутся в `prefix/lib/pythonversion` и `exec_prefix/lib/pythonversion`, где `prefix` и `exec_prefix` – это каталоги, зависящие от установки, оба по умолчанию равны `/usr/local`.301302Когда [`PYTHONHOME`](https://python-all.ru/3.4/using/cmdline.html#envvar-PYTHONHOME) установлен в один каталог, его значение заменяет как `prefix`, так и `exec_prefix`. Чтобы задать разные значения для них, установите [`PYTHONHOME`](https://python-all.ru/3.4/using/cmdline.html#envvar-PYTHONHOME) в `prefix:exec_prefix`.303304**`PYTHONPATH`**305306Дополняет путь поиска модулей по умолчанию. Формат такой же, как у `PATH` оболочки: один или несколько путей к каталогам, разделённых [`os.pathsep`](https://python-all.ru/3.4/library/os.html#os.pathsep) (например, двоеточиями в Unix или точкой с запятой в Windows). Несуществующие каталоги игнорируются без предупреждения.307308В дополнение к обычным каталогам, отдельные элементы [`PYTHONPATH`](https://python-all.ru/3.4/using/cmdline.html#envvar-PYTHONPATH) могут указывать на zip-файлы, содержащие чистые модули Python (в исходной или скомпилированной форме). Модули расширения не могут быть импортированы из zip-файлов.309310Путь поиска по умолчанию зависит от установки, но обычно начинается с `prefix/lib/pythonversion` (см. [`PYTHONHOME`](https://python-all.ru/3.4/using/cmdline.html#envvar-PYTHONHOME) выше). Он *всегда* добавляется к [`PYTHONPATH`](https://python-all.ru/3.4/using/cmdline.html#envvar-PYTHONPATH).311312Дополнительный каталог будет вставлен в путь поиска перед [`PYTHONPATH`](https://python-all.ru/3.4/using/cmdline.html#envvar-PYTHONPATH), как описано выше в разделе [*Параметры интерфейса*](https://python-all.ru/3.4/using/cmdline.html#using-on-interface-options). Путь поиска можно изменять из программы Python через переменную [`sys.path`](https://python-all.ru/3.4/library/sys.html#sys.path).313314**`PYTHONSTARTUP`**315316Если это имя читаемого файла, команды Python из этого файла выполняются перед отображением первого приглашения в интерактивном режиме. Файл выполняется в том же пространстве имён, где выполняются интерактивные команды, чтобы объекты, определённые или импортированные в нём, можно было использовать без уточнения в интерактивном сеансе. Также можно изменить приглашения [`sys.ps1`](https://python-all.ru/3.4/library/sys.html#sys.ps1) и [`sys.ps2`](https://python-all.ru/3.4/library/sys.html#sys.ps2), а также хук [`sys.__interactivehook__`](https://python-all.ru/3.4/library/sys.html#sys.__interactivehook__) в этом файле.317318**`PYTHONOPTIMIZE`**319320Если установлена в непустую строку, это эквивалентно указанию опции [*-O*](https://python-all.ru/3.4/using/cmdline.html#cmdoption-O). Если установлена в целое число, это эквивалентно указанию [*-O*](https://python-all.ru/3.4/using/cmdline.html#cmdoption-O) несколько раз.321322**`PYTHONDEBUG`**323324Если установлена в непустую строку, это эквивалентно указанию опции [*-d*](https://python-all.ru/3.4/using/cmdline.html#cmdoption-d). Если установлена в целое число, это эквивалентно указанию [*-d*](https://python-all.ru/3.4/using/cmdline.html#cmdoption-d) несколько раз.325326**`PYTHONINSPECT`**327328Если установлена в непустую строку, это эквивалентно указанию опции [*-i*](https://python-all.ru/3.4/using/cmdline.html#cmdoption-i).329330Эту переменную также можно изменить из кода Python с помощью [`os.environ`](https://python-all.ru/3.4/library/os.html#os.environ), чтобы принудительно включить режим инспекции при завершении программы.331332**`PYTHONUNBUFFERED`**333334Если эта переменная установлена в непустую строку, это эквивалентно указанию опции [*-u*](https://python-all.ru/3.4/using/cmdline.html#cmdoption-u).335336**`PYTHONVERBOSE`**337338Если эта переменная установлена в непустую строку, это эквивалентно указанию опции [*-v*](https://python-all.ru/3.4/using/cmdline.html#cmdoption-v). Если установлена в целое число, это эквивалентно указанию [*-v*](https://python-all.ru/3.4/using/cmdline.html#cmdoption-v) несколько раз.339340**`PYTHONCASEOK`**341342Если эта переменная установлена, Python игнорирует регистр в операторах [`import`](https://python-all.ru/3.4/reference/simple_stmts.html#import). Это работает только в Windows и OS X.343344**`PYTHONDONTWRITEBYTECODE`**345346Если эта переменная установлена в непустую строку, Python не будет пытаться записывать файлы `.pyc` или `.pyo` при импорте исходных модулей. Это эквивалентно указанию опции [*-B*](https://python-all.ru/3.4/using/cmdline.html#cmdoption-B).347348**`PYTHONHASHSEED`**349350Если эта переменная не установлена или установлена в `random`, для инициализации хешей объектов str, bytes и datetime используется случайное значение.351352Если [`PYTHONHASHSEED`](https://python-all.ru/3.4/using/cmdline.html#envvar-PYTHONHASHSEED) установлена в целое число, оно используется как фиксированная инициализация для генерации hash() для типов, участвующих в рандомизации хешей.353354Его цель – обеспечить воспроизводимое хеширование, например, для самотестирования самого интерпретатора, или чтобы позволить кластеру процессов Python обмениваться значениями хешей.355356Целое число должно быть десятичным числом в диапазоне \[0, 4294967295\]. Указание значения 0 отключит рандомизацию хешей.357358Новое в версии 3.2.3.359360**`PYTHONIOENCODING`**361362Если эта переменная установлена до запуска интерпретатора, она переопределяет кодировку, используемую для stdin/stdout/stderr, в синтаксисе `encodingname:errorhandler`. Обе части `encodingname` и `:errorhandler` являются необязательными и имеют то же значение, что и в [`str.encode()`](https://python-all.ru/3.4/library/stdtypes.html#str.encode).363364Для stderr часть `:errorhandler` игнорируется; обработчик всегда будет `'backslashreplace'`.365366Изменено в версии 3.4: Часть `encodingname` теперь необязательна.367368**`PYTHONNOUSERSITE`**369370Если эта переменная установлена, Python не будет добавлять [`user site-packages каталог`](https://python-all.ru/3.4/library/site.html#site.USER_SITE) в [`sys.path`](https://python-all.ru/3.4/library/sys.html#sys.path).371372> **См. также**373>374> [**PEP 370**](https://python-all.ru/3.4/using/cmdline.html) – Каталог site-packages для каждого пользователя375376**`PYTHONUSERBASE`**377378Определяет [`пользовательский базовый каталог`](https://python-all.ru/3.4/library/site.html#site.USER_BASE), который используется для вычисления пути [`пользовательского site-packages каталога`](https://python-all.ru/3.4/library/site.html#site.USER_SITE) и [*путей установки Distutils*](https://python-all.ru/3.4/install/index.html#inst-alt-install-user) для `python setup.py install --user`.379380> **См. также**381>382> [**PEP 370**](https://python-all.ru/3.4/using/cmdline.html) – Каталог site-packages для каждого пользователя383384**`PYTHONEXECUTABLE`**385386Если эта переменная окружения установлена, `sys.argv[0]` будет установлено в её значение вместо значения, полученного через среду выполнения C. Работает только на Mac OS X.387388**`PYTHONWARNINGS`**389390Это эквивалентно опции [*-W*](https://python-all.ru/3.4/using/cmdline.html#cmdoption-W). Если установлена в строку, разделённую запятыми, это эквивалентно указанию [*-W*](https://python-all.ru/3.4/using/cmdline.html#cmdoption-W) несколько раз.391392**`PYTHONFAULTHANDLER`**393394Если эта переменная окружения установлена в непустую строку, [`faulthandler.enable()`](https://python-all.ru/3.4/library/faulthandler.html#faulthandler.enable) вызывается при запуске: устанавливается обработчик для сигналов `SIGSEGV`, `SIGFPE`, `SIGABRT`, `SIGBUS` и `SIGILL` для дампа трассировки Python. Это эквивалентно опции [*-X*](https://python-all.ru/3.4/using/cmdline.html#cmdoption-X) `faulthandler`.395396Новое в версии 3.3.397398**`PYTHONTRACEMALLOC`**399400Если эта переменная окружения установлена в непустую строку, запускается трассировка выделений памяти Python с помощью модуля [`tracemalloc`](https://python-all.ru/3.4/library/tracemalloc.html#module-tracemalloc). Значение переменной – это максимальное количество фреймов, сохраняемых в трассировке одного следа. Например, `PYTHONTRACEMALLOC=1` сохраняет только самый последний фрейм. См. [`tracemalloc.start()`](https://python-all.ru/3.4/library/tracemalloc.html#tracemalloc.start) для получения дополнительной информации.401402Новое в версии 3.4.403404**`PYTHONASYNCIODEBUG`**405406Если эта переменная окружения установлена в непустую строку, включается [*режим отладки*](https://python-all.ru/3.4/library/asyncio-dev.html#asyncio-debug-mode) модуля [`asyncio`](https://python-all.ru/3.4/library/asyncio.html#module-asyncio).407408Новое в версии 3.4.409410### 1.2.1. Переменные режима отладки411412Установка этих переменных действует только в отладочной сборке Python, то есть если Python был сконфигурирован с опцией сборки `--with-pydebug`.413414**`PYTHONTHREADDEBUG`**415416Если установлено, Python будет выводить отладочную информацию о потоках.417418**`PYTHONDUMPREFS`**419420Если установлено, Python будет выгружать объекты и счетчики ссылок, все еще живые после завершения работы интерпретатора.421422**`PYTHONMALLOCSTATS`**423424Если установлено, Python будет выводить статистику распределения памяти каждый раз при создании новой арены объектов, а также при завершении работы.425