Spec-Zone.ru › Python 3.11

Приложение

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

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

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

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

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

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

#!/usr/bin/env python3.5

(при условии, что интерпретатор находится в пути пользователя 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.5/site-packages'

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

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

Примечания

1

Проблема с пакетом GNU Readline может помешать этому.

© 2001–2023 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.11/tutorial/appendix.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API