Приложение
16.1. Интерактивный режим
Существует два варианта интерактивного REPL. Классический базовый интерпретатор поддерживается на всех платформах и предоставляет минимальные возможности управления строкой.
В Windows и Unix-подобных системах с поддержкой curses по умолчанию используется новая интерактивная оболочка, начиная с Python 3.13. Она поддерживает цветной вывод, редактирование многострочного ввода, просмотр истории и режим вставки. Подробнее о том, как отключить цветной вывод, см. в разделе Управление цветом. Функциональные клавиши предоставляют дополнительные возможности. Клавиша F1 открывает интерактивный справочник pydoc. Клавиша F2 позволяет просматривать историю командной строки без вывода и приглашений >>> и …. Клавиша F3 включает «режим вставки», упрощающий вставку больших блоков кода. Нажмите F3, чтобы вернуться к обычному приглашению.
Чтобы выйти из новой интерактивной оболочки, введите exit или quit. Добавлять круглые скобки вызова после этих команд не требуется.
Если новая интерактивная оболочка не нужна, ее можно отключить с помощью переменной среды PYTHON_BASIC_REPL.
16.1.1. Обработка ошибок
При возникновении ошибки интерпретатор выводит сообщение об ошибке и трассировку стека. В интерактивном режиме после этого он возвращается к основному приглашению; если ввод поступил из файла, интерпретатор завершает работу с ненулевым кодом выхода после вывода трассировки стека. (Исключения, обработанные предложением except в инструкции try, в данном контексте не считаются ошибками.) Некоторые ошибки всегда являются фатальными и приводят к завершению работы с ненулевым кодом выхода; к ним относятся внутренние несоответствия и некоторые случаи нехватки памяти. Все сообщения об ошибках записываются в стандартный поток ошибок; обычный вывод выполненных команд записывается в стандартный поток вывода.
Нажатие клавиши прерывания (обычно Control-C или Delete) при основном или вторичном приглашении отменяет ввод и возвращает к основному приглашению. [1] Нажатие клавиши прерывания во время выполнения команды вызывает исключение KeyboardInterrupt, которое можно обработать инструкцией try.
16.1.2. Исполняемые скрипты Python
В Unix-подобных системах BSD скрипты Python можно сделать непосредственно исполняемыми, как скрипты оболочки, добавив в начало строку
#!/usr/bin/env python3
(при условии, что интерпретатор находится в переменной PATH пользователя) и назначив файлу режим исполнения. #! должны быть первыми двумя символами файла. На некоторых платформах эта первая строка должна заканчиваться символом конца строки в стиле Unix ('\n'), а не в стиле Windows ('\r\n'). Обратите внимание: символ решетки, '#', используется в Python для начала комментария.
Файлу можно назначить режим исполнения, или разрешение на выполнение, с помощью команды chmod.
$ chmod +x myscript.py
В системах Windows понятие «режим исполнения» отсутствует. Установщик Python автоматически связывает файлы .py с python.exe, поэтому двойной щелчок по файлу Python запускает его как скрипт. Расширение также может быть .pyw; в этом случае окно консоли, которое обычно появляется, не отображается.
16.1.3. Файл интерактивного запуска
При интерактивной работе с 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. Модули настройки
Python предоставляет два механизма настройки: sitecustomize и usercustomize. Чтобы узнать, как это работает, сначала найдите расположение каталога пользовательских site-packages. Запустите Python и выполните следующий код:
>>> import site >>> site.getusersitepackages() '/home/user/.local/lib/python3.x/site-packages'
Теперь можно создать в этом каталоге файл с именем usercustomize.py и поместить в него все, что угодно. Это повлияет на каждый запуск Python, если только он не запущен с параметром -s, отключающим автоматический импорт.
sitecustomize работает так же, но обычно создается системным администратором в глобальном каталоге site-packages и импортируется до usercustomize. Подробнее см. документацию модуля site.
Сноски
© 2001–2025 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.13/tutorial/appendix.html