Документация Python неофициальный перевод

appendix.md

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

1> **Источник:** https://python-all.ru/3.15/tutorial/appendix.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# 16. Приложение89## 16.1. Интерактивный режим1011Существует два варианта интерактивного [REPL](https://python-all.ru/3.15/glossary.html#term-REPL). Классический базовый интерпретатор поддерживается на всех платформах с минимальными возможностями управления строками.1213Начиная с Python 3.13, по умолчанию используется новая интерактивная оболочка. Она поддерживает цвет, многострочное редактирование, просмотр истории и режим вставки. Чтобы отключить цвет, см. [Управление цветом](https://python-all.ru/3.15/using/cmdline.html#using-on-controlling-color) для подробностей. Функциональные клавиши предоставляют некоторые дополнительные возможности. `F1` открывает интерактивный браузер справки [`pydoc`](https://python-all.ru/3.15/library/pydoc.html#module-pydoc). `F2` позволяет просматривать историю командной строки без вывода приглашений [\>\>\>](https://python-all.ru/3.15/glossary.html#term-0) и [](https://python-all.ru/3.15/glossary.html#term-...). `F3` включает «режим вставки», который упрощает вставку больших блоков кода. Нажмите `F3`, чтобы вернуться к обычному приглашению.1415При использовании новой интерактивной оболочки выйдите из неё, введя `exit` или `quit`. Добавлять скобки после этих команд не требуется.1617Если новая интерактивная оболочка не нужна, её можно отключить с помощью переменной окружения [`PYTHON_BASIC_REPL`](https://python-all.ru/3.15/using/cmdline.html#envvar-PYTHON_BASIC_REPL).1819### 16.1.1. Обработка ошибок2021При возникновении ошибки интерпретатор выводит сообщение об ошибке и трассировку стека. В интерактивном режиме после этого он возвращается к основному приглашению; если входные данные поступают из файла, он завершает работу с ненулевым кодом возврата после вывода трассировки стека. (Исключения, обрабатываемые предложением [`except`](https://python-all.ru/3.15/reference/compound_stmts.html#except) в операторе [`try`](https://python-all.ru/3.15/reference/compound_stmts.html#try), не считаются ошибками в данном контексте.) Некоторые ошибки являются безусловно фатальными и приводят к завершению с ненулевым кодом возврата; это относится к внутренним несоответствиям и некоторым случаям нехватки памяти. Все сообщения об ошибках записываются в стандартный поток ошибок; обычный вывод выполняемых команд записывается в стандартный поток вывода.2223Ввод символа прерывания (обычно `Control`-`C` или `Delete`) на основном или вторичном приглашении отменяет ввод и возвращает к основному приглашению. [\[1\]](https://python-all.ru/3.15/tutorial/appendix.html#id2) Ввод прерывания во время выполнения команды вызывает исключение [`KeyboardInterrupt`](https://python-all.ru/3.15/library/exceptions.html#KeyboardInterrupt), которое может быть обработано оператором [`try`](https://python-all.ru/3.15/reference/compound_stmts.html#try).2425### 16.1.2. Исполняемые сценарии Python2627В Unix-системах BSD-подобного типа сценарии Python можно сделать непосредственно исполняемыми, как сценарии оболочки, поместив строку2829```python30#!/usr/bin/env python331```3233(предполагая, что интерпретатор находится в `PATH` пользователя) в начале сценария и установив для файла режим исполняемого. Символы `#!` должны быть первыми двумя символами файла. На некоторых платформах эта первая строка должна заканчиваться символом конца строки в стиле Unix (`'\n'`), а не Windows (`'\r\n'`). Обратите внимание, что символ решётки `'#'` используется для начала комментария в Python.3435Сценарию можно установить режим исполняемого файла, или разрешение, с помощью команды **chmod**.3637```console38$ chmod +x myscript.py39```4041В системах Windows нет понятия «режим исполняемого». Установщик Python автоматически связывает файлы `.py` с `python.exe`, так что dвойной щелчок по файлу Python запускает его как сценарий. Расширение также может быть `.pyw`, в этом случае консольное окно, которое обычно появляется, подавляется.4243### 16.1.3. Интерактивный файл запуска4445При интерактивном использовании Python часто бывает удобно иметь некоторые стандартные команды, выполняемые каждый раз при запуске интерпретатора. Это можно сделать, установив переменную окружения с именем [`PYTHONSTARTUP`](https://python-all.ru/3.15/using/cmdline.html#envvar-PYTHONSTARTUP), указывающую на имя файла, содержащего команды запуска. Это похоже на возможность `.profile` оболочек Unix.4647Этот файл читается только в интерактивных сеансах, а не когда Python читает команды из сценария, и не когда `/dev/tty` указан как явный источник команд (который в остальном ведёт себя как интерактивный сеанс). Он выполняется в том же пространстве имён, в котором выполняются интерактивные команды, так что объекты, которые он определяет или импортирует, могут использоваться без уточнения в интерактивном сеансе. Вы также можете изменить приглашения `sys.ps1` и `sys.ps2` в этом файле.4849Если требуется читать дополнительный файл запуска из текущего каталога, это можно запрограммировать в глобальном файле запуска с помощью кода вроде `if os.path.isfile('.pythonrc.py'): exec(open('.pythonrc.py').read())`. Если требуется использовать файл запуска в сценарии, это нужно сделать явно в сценарии:5051```python52import os53filename = os.environ.get('PYTHONSTARTUP')54if filename and os.path.isfile(filename):55    with open(filename) as fobj:56        startup_file = fobj.read()57    exec(startup_file)58```5960### 16.1.4. Модули настройки6162Python предоставляет две точки подключения для настройки: sitecustomize и usercustomize. Чтобы увидеть, как это работает, сначала нужно найти расположение каталога user site-packages. Запустите Python и выполните этот код:6364```python65>>> import site66>>> site.getusersitepackages()67'/home/user/.local/lib/python3.x/site-packages'68```6970Теперь можно создать файл с именем `usercustomize.py` в этом каталоге и поместить в него всё что угодно. Он будет влиять на каждый запуск Python, если только он не запущен с опцией [`-s`](https://python-all.ru/3.15/using/cmdline.html#cmdoption-s), отключающей автоматический импорт.7172sitecustomize работает так же, но обычно создаётся администратором компьютера в глобальном каталоге site-packages и импортируется до usercustomize. См. документацию модуля [`site`](https://python-all.ru/3.15/library/site.html#module-site) для получения подробностей.7374Сноски7576\[[1](https://python-all.ru/3.15/tutorial/appendix.html#id1)\]7778Проблема с пакетом GNU Readline может помешать этому.79