Приложение

Приложение

coolcoders

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

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

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

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

Исполняемые скрипты Python

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

#!/usr/bin/env python3.5

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

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

$ chmod +x myscript.py

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

Автозапуск программ в интерактивном режиме

Когда вы используете 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)

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

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

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

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

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

Заключение

Пост создан для тг-канала @coolcoders


Report Page