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

appendix.md

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

1> **Источник:** https://python-all.ru/3.10/tutorial/appendix.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# 16. Приложение89## 16.1. Интерактивный режим1011### 16.1.1. Обработка ошибок1213Когда возникает ошибка, интерпретатор выводит сообщение об ошибке и трассировку стека. В интерактивном режиме после этого он возвращается к основному приглашению; если ввод был из файла, он завершается с ненулевым кодом возврата после вывода трассировки стека. (Исключения, обрабатываемые предложением [`except`](https://python-all.ru/3.10/reference/compound_stmts.html#except) в операторе [`try`](https://python-all.ru/3.10/reference/compound_stmts.html#try), не считаются ошибками в данном контексте.) Некоторые ошибки являются безусловно фатальными и приводят к завершению с ненулевым кодом; это относится к внутренним несоответствиям и некоторым случаям нехватки памяти. Все сообщения об ошибках записываются в стандартный поток ошибок; обычный вывод выполненных команд записывается в стандартный вывод.1415Нажатие символа прерывания (обычно `Control-C` или `Delete`) на первичном или вторичном приглашении отменяет ввод и возвращает к первичному приглашению. [1](https://python-all.ru/3.10/tutorial/appendix.html#id2) Нажатие прерывания во время выполнения команды вызывает [`KeyboardInterrupt`](https://python-all.ru/3.10/library/exceptions.html#KeyboardInterrupt) исключение, которое может быть обработано с помощью [`try`](https://python-all.ru/3.10/reference/compound_stmts.html#try) оператора.1617### 16.1.2. Исполняемые сценарии Python1819В Unix-системах BSD-подобного типа сценарии Python можно сделать непосредственно исполняемыми, как сценарии оболочки, поместив строку2021```python22#!/usr/bin/env python3.523```2425(предполагая, что интерпретатор находится в `PATH` пользователя) в начале сценария и установив для файла режим исполняемого. Символы `#!` должны быть первыми двумя символами файла. На некоторых платформах эта первая строка должна заканчиваться символом конца строки в стиле Unix (`'\n'`), а не Windows (`'\r\n'`). Обратите внимание, что символ решётки `'#'` используется для начала комментария в Python.2627Сценарию можно установить режим исполняемого файла, или разрешение, с помощью команды **chmod**.2829```console30$ chmod +x myscript.py31```3233В системах Windows нет понятия «режим исполняемого». Установщик Python автоматически связывает файлы `.py` с `python.exe`, так что dвойной щелчок по файлу Python запускает его как сценарий. Расширение также может быть `.pyw`, в этом случае консольное окно, которое обычно появляется, подавляется.3435### 16.1.3. Интерактивный файл запуска3637При интерактивном использовании Python часто бывает удобно иметь некоторые стандартные команды, выполняемые каждый раз при запуске интерпретатора. Это можно сделать, установив переменную окружения с именем [`PYTHONSTARTUP`](https://python-all.ru/3.10/using/cmdline.html#envvar-PYTHONSTARTUP), указывающую на имя файла, содержащего команды запуска. Это похоже на возможность `.profile` оболочек Unix.3839Этот файл читается только в интерактивных сеансах, а не когда Python читает команды из сценария, и не когда `/dev/tty` указан как явный источник команд (который в остальном ведёт себя как интерактивный сеанс). Он выполняется в том же пространстве имён, в котором выполняются интерактивные команды, так что объекты, которые он определяет или импортирует, могут использоваться без уточнения в интерактивном сеансе. Вы также можете изменить приглашения `sys.ps1` и `sys.ps2` в этом файле.4041Если требуется читать дополнительный файл запуска из текущего каталога, это можно запрограммировать в глобальном файле запуска с помощью кода вроде `if os.path.isfile('.pythonrc.py'): exec(open('.pythonrc.py').read())`. Если требуется использовать файл запуска в сценарии, это нужно сделать явно в сценарии:4243```python44import os45filename = os.environ.get('PYTHONSTARTUP')46if filename and os.path.isfile(filename):47    with open(filename) as fobj:48        startup_file = fobj.read()49    exec(startup_file)50```5152### 16.1.4. Модули настройки5354Python предоставляет две точки подключения для настройки: `sitecustomize` и `usercustomize`. Чтобы увидеть, как это работает, сначала нужно найти расположение каталога site-packages пользователя. Запустите Python и выполните следующий код:5556```python57>>> import site58>>> site.getusersitepackages()59'/home/user/.local/lib/python3.5/site-packages'60```6162Теперь можно создать файл с именем `usercustomize.py` в этом каталоге и поместить в него всё что угодно. Он будет влиять на каждый запуск Python, если только он не запущен с опцией [`-s`](https://python-all.ru/3.10/using/cmdline.html#cmdoption-s), отключающей автоматический импорт.6364`sitecustomize` работает аналогично, но обычно создаётся администратором компьютера в глобальном каталоге site-packages и импортируется перед `usercustomize`. За дополнительными сведениями обратитесь к документации модуля [`site`](https://python-all.ru/3.10/library/site.html#module-site).6566Сноски6768**[1](https://python-all.ru/3.10/tutorial/appendix.html#id1)**6970Проблема с пакетом GNU Readline может помешать этому.71