Spec-Zone.ru › Python 3.10

Приложение

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.10/tutorial/appendix.html

Spec-Zone.ru

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