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

16. ПриложениеAppendix

16.1. Интерактивный режимInteractive Mode

Существует два варианта интерактивного REPL. Классический базовый интерпретатор поддерживается на всех платформах с минимальными возможностями управления строками.

Начиная с Python 3.13, по умолчанию используется новая интерактивная оболочка. Она поддерживает цвет, многострочное редактирование, просмотр истории и режим вставки. Чтобы отключить цвет, см. Управление цветом для подробностей. Функциональные клавиши предоставляют некоторые дополнительные возможности. F1 открывает интерактивный браузер справки pydoc. F2 позволяет просматривать историю командной строки без вывода приглашений >>> и . F3 включает «режим вставки», который упрощает вставку больших блоков кода. Нажмите F3, чтобы вернуться к обычному приглашению.

При использовании новой интерактивной оболочки выйдите из неё, введя exit или quit. Добавлять скобки после этих команд не требуется.

Если новая интерактивная оболочка не нужна, её можно отключить с помощью переменной окружения PYTHON_BASIC_REPL.

16.1.1. Обработка ошибокError Handling

При возникновении ошибки интерпретатор выводит сообщение об ошибке и трассировку стека. В интерактивном режиме после этого он возвращается к основному приглашению; если входные данные поступают из файла, он завершает работу с ненулевым кодом возврата после вывода трассировки стека. (Исключения, обрабатываемые предложением except в операторе try, не считаются ошибками в данном контексте.) Некоторые ошибки являются безусловно фатальными и приводят к завершению с ненулевым кодом возврата; это относится к внутренним несоответствиям и некоторым случаям нехватки памяти. Все сообщения об ошибках записываются в стандартный поток ошибок; обычный вывод выполняемых команд записывается в стандартный поток вывода.

Ввод символа прерывания (обычно Control-C или Delete) на основном или вторичном приглашении отменяет ввод и возвращает к основному приглашению. [1] Ввод прерывания во время выполнения команды вызывает исключение KeyboardInterrupt, которое может быть обработано оператором try.

16.1.2. Исполняемые сценарии PythonExecutable Python Scripts

В Unix-системах BSD-подобного типа сценарии Python можно сделать непосредственно исполняемыми, как сценарии оболочки, поместив строку

#!/usr/bin/env python3

(предполагая, что интерпретатор находится в PATH пользователя) в начале сценария и установив для файла режим исполняемого. Символы #! должны быть первыми двумя символами файла. На некоторых платформах эта первая строка должна заканчиваться символом конца строки в стиле Unix ('\n'), а не Windows ('\r\n'). Обратите внимание, что символ решётки '#' используется для начала комментария в Python.

Сценарию можно установить режим исполняемого файла, или разрешение, с помощью команды chmod.

$ chmod +x myscript.py

В системах Windows нет понятия «режим исполняемого». Установщик Python автоматически связывает файлы .py с python.exe, так что dвойной щелчок по файлу Python запускает его как сценарий. Расширение также может быть .pyw, в этом случае консольное окно, которое обычно появляется, подавляется.

16.1.3. Интерактивный файл запускаThe Interactive Startup File

При интерактивном использовании Python часто бывает удобно иметь некоторые стандартные команды, выполняемые каждый раз при запуске интерпретатора. Это можно сделать, установив переменную окружения с именем PYTHONSTARTUP, указывающую на имя файла, содержащего команды запуска. Это похоже на возможность .profile оболочек Unix.

Этот файл читается только в интерактивных сеансах, а не когда Python читает команды из сценария, и не когда /dev/tty указан как явный источник команд (который в остальном ведёт себя как интерактивный сеанс). Он выполняется в том же пространстве имён, в котором выполняются интерактивные команды, так что объекты, которые он определяет или импортирует, могут использоваться без уточнения в интерактивном сеансе. Вы также можете изменить приглашения sys.ps1 и sys.ps2 в этом файле.

Если требуется читать дополнительный файл запуска из текущего каталога, это можно запрограммировать в глобальном файле запуска с помощью кода вроде if os.path.isfile('.pythonrc.py'): exec(open('.pythonrc.py').read()). Если требуется использовать файл запуска в сценарии, это нужно сделать явно в сценарии:

import os
filename = os.environ.get('PYTHONSTARTUP')
if filename and os.path.isfile(filename):
    with open(filename) as fobj:
        startup_file = fobj.read()
    exec(startup_file)

16.1.4. Модули настройкиThe Customization Modules

Python предоставляет две точки подключения для настройки: sitecustomize и usercustomize. Чтобы увидеть, как это работает, сначала нужно найти расположение каталога user site-packages. Запустите Python и выполните этот код:

>>> import site
>>> site.getusersitepackages()
'/home/user/.local/lib/python3.x/site-packages'

Теперь можно создать файл с именем usercustomize.py в этом каталоге и поместить в него всё что угодно. Он будет влиять на каждый запуск Python, если только он не запущен с опцией -s, отключающей автоматический импорт.

sitecustomize работает так же, но обычно создаётся администратором компьютера в глобальном каталоге site-packages и импортируется до usercustomize. См. документацию модуля site для получения подробностей.

Сноски