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

appendix.md

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

1> **Источник:** https://python-all.ru/3.4/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.4/reference/compound_stmts.html#except) в операторе [`try`](https://python-all.ru/3.4/reference/compound_stmts.html#try), в данном контексте не считаются ошибками.) Некоторые ошибки являются безусловно фатальными и приводят к завершению с ненулевым кодом; это относится к внутренним противоречиям и некоторым случаям нехватки памяти. Все сообщения об ошибках записываются в стандартный поток ошибок; обычный вывод выполняемых команд направляется в стандартный вывод.1415Ввод символа прерывания (обычно `Control-C` или `Delete`) на основном или дополнительном приглашении отменяет ввод и возвращает к основному приглашению. [\[1\]](https://python-all.ru/3.4/tutorial/appendix.html#id2) Ввод прерывания во время выполнения команды вызывает исключение [`KeyboardInterrupt`](https://python-all.ru/3.4/library/exceptions.html#KeyboardInterrupt), которое может быть обработано оператором [`try`](https://python-all.ru/3.4/reference/compound_stmts.html#try).1617### 16.1.2. Исполняемые скрипты Python1819В Unix-системах BSD-подобного типа сценарии Python можно сделать непосредственно исполняемыми, как сценарии оболочки, поместив строку2021```python22#!/usr/bin/env python3.423```2425(предполагая, что интерпретатор находится в `PATH` пользователя) в начале скрипта и установив файлу режим исполняемого. Символы `#!` должны быть первыми двумя символами файла. На некоторых платформах эта первая строка должна заканчиваться переводом строки в стиле Unix (`'\n'`), а не Windows (`'\r\n'`). Обратите внимание, что символ решётки `'#'` используется для начала комментария в Python.2627Сценарию можно установить режим исполняемого файла, или разрешение, с помощью команды **chmod**.2829```bash30$ chmod +x myscript.py31```3233В системах Windows нет понятия «исполняемый режим». Установщик Python автоматически связывает файлы `.py` с `python.exe`, так что двойной щелчок по файлу Python запускает его как скрипт. Расширение также может быть `.pyw`; в этом случае окно консоли, которое обычно появляется, подавляется.3435### 16.1.3. Файл интерактивного запуска3637При интерактивном использовании Python часто бывает удобно, чтобы при каждом запуске интерпретатора выполнялись некоторые стандартные команды. Это можно сделать, установив переменную среды с именем [`PYTHONSTARTUP`](https://python-all.ru/3.4/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.4/site-packages'60```6162Теперь вы можете создать файл с именем `usercustomize.py` в этом каталоге и поместить туда всё, что захотите. Этот файл будет влиять на каждый запуск Python, если только он не запущен с опцией [*-s*](https://python-all.ru/3.4/using/cmdline.html#cmdoption-s), отключающей автоматический импорт.6364`sitecustomize` работает аналогично, но обычно создаётся администратором компьютера в глобальном каталоге site-packages и импортируется до `usercustomize`. Подробнее см. документацию модуля [`site`](https://python-all.ru/3.4/library/site.html#module-site).6566Сноски6768| [\[1\]](https://python-all.ru/3.4/tutorial/appendix.html#id1) | Проблема с пакетом GNU Readline может помешать этому. |69| --- | --- |70