Spec-Zone.ru › Python 3.12

Приложение

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

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
if os.path.exists('.pythonrc.py'):
    exec(open('.pythonrc.py').read())

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

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

import site
site.getusersitepackages()

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

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

Примечания

[1]

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

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

Spec-Zone.ru

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