Главная страница
Навигация по странице:

  • Встраивание вызовов

  • Фиксированные исполняемые двоичные файлы

  • Возможность запуска программ из текстового редактора

  • Прочие возможности запуска

  • Какие способы следует использовать

  • Закрепление пройденного Контрольные вопросы

  • Упражнения к первой части

  • Математический анализ. 3е издание


    Скачать 4.86 Mb.
    Название3е издание
    АнкорМатематический анализ
    Дата04.02.2022
    Размер4.86 Mb.
    Формат файлаpdf
    Имя файлаpython_01.pdf
    ТипДокументы
    #351981
    страница14 из 98
    1   ...   10   11   12   13   14   15   16   17   ...   98
    100
    Глава 3. Как пользователь запускает программы
    Встраивание вызовов
    К настоящему моменту мы рассмотрели, как выполнять программный код в интерактивной командной оболочке интерпретатора и как запус
    кать программный код, сохраненный в файлах, из системной команд
    ной строки, из исполняемых сценариев в системе UNIX, щелчком мы
    ши, с помощью операции импортирования модулей и в интегрирован
    ной среде разработки, такой как IDLE. Это подавляющее большинство способов, которые встретятся вам в этой книге.
    Но в некоторых особых случаях программный код на языке Python может также запускаться из других программ. В таких ситуациях мы говорим, что программы на языке Python встроены в другие програм
    мы (то есть запускаются другими программами). Сам программный код Python может храниться в текстовом файле, в базе данных, извле
    каться из страницы HTML или из документа XML и т. д. В этом случае уже не вы, а другая программа предлагает интерпретатору выполнить программный код, созданный вами. Такой способ запуска программ
    ного кода обычно используется для обеспечения поддержки возмож
    ности настройки у конечного пользователя, например, игровая про
    грамма может позволять изменять ход игры, запуская в ключевые мо
    менты внедренный программный код пользователя на языке Python.
    Например, вполне возможно создавать и выполнять строки программ
    ного кода Python из программ на языке C, вызывая функции API време
    ни выполнения интерпретатора Python (набор служб, экспортируемых библиотеками, созданными при компиляции Python на вашей машине):
    #include
    Py_Initialize();
    PyRun_SimpleString("x = brave + sir + robin");
    В этом фрагменте программа на языке C, скомпонованная с библиоте
    ками Python, инициализирует интерпретатор и передает ему для вы
    полнения строку с инструкцией присваивания. Программы на языке C
    могут также получать доступ к объектам Python и взаимодействовать с ними, используя другие функции API языка Python.
    Эта книга не описывает вопросы интеграции Python/C, но вы должны знать, что в зависимости от того, как ваша организация планирует ис
    пользовать Python, вы можете оказаться одним из тех, кому действи
    тельно придется запускать программы на языке Python.
    1
    При этом бо
    1
    О встраивании программного кода Python в программы на языке C/C++
    подробно рассказывается в книге «Programming Python» (O’Reilly). Ис
    пользуя прикладной интерфейс встраиваемого интерпретатора, вы сможе
    те напрямую вызывать функции Python, загружать модули и производить прочие действия. Кроме того, система Jython позволяет программам на языке Java вызывать программный код на языке Python, используя при
    кладной интерфейс на языке Java (класс интерпретатора Python).

    Фиксированные исполняемые двоичные файлы
    101
    лее чем вероятно, что вы попрежнему сможете использовать интерак
    тивную оболочку интерпретатора и приемы запуска файлов, описан
    ные выше, чтобы протестировать программный код отдельно от программ, куда этот код внедряется.
    Фиксированные исполняемые двоичные файлы
    Фиксированные исполняемые двоичные файлы, описанные в преды
    дущей главе, представляют собой комбинацию байткода программы и интерпретатора Python, объединенных в одном исполняемом файле.
    Благодаря этому такие программы могут запускаться точно так же,
    как любые другие программы (щелчком на ярлыке, из командной строки и другими способами). Такая возможность замечательно под
    ходит для случая распространения готовых программных продуктов,
    но она не предназначена для использования в процессе разработки программ. Обычно фиксирование файлов производится непосредст
    венно перед отправкой (когда разработка уже завершена) программы заказчику. Более подробная информация об этой возможности приво
    дится в предыдущей главе.
    Возможность запуска программ
    из текстового редактора
    Как упоминалось ранее, большинство текстовых редакторов для про
    граммистов хотя и не являются полноценными интегрированными средами разработки, тем не менее поддерживают возможность редак
    тирования и запуска программ на языке Python. Такая поддержка мо
    жет быть изначально встроена в редактор или доступна в виде расши
    рений, которые можно загрузить из Сети. Например, если вы знакомы с текстовым редактором Emacs, вы сможете редактировать программ
    ный код на языке Python и запускать его, не покидая текстовый редак
    тор. Дополнительную информацию о текстовых редакторах вы найдете на странице http://www.python.org/editors или поискав в Google по фразе «Python editors» (редакторы Python).
    Прочие возможности запуска
    В зависимости от используемой платформы могут существовать и дру
    гие способы запуска программ Python. Например, в некоторых систе
    мах Macintosh выполнить программу на языке Python можно, перета
    щив мышью ярлык файла программы на ярлык интерпретатора Py
    thon. В Windows сценарии можно запускать с помощью пункта
    Выпол
    нить… (Run…) меню кнопки Пуск (Start). Наконец, в состав стандартной библиотеки Python входят вспомогательные функции, позволяющие запускать программы на языке Python из других программ на языке

    102
    Глава 3. Как пользователь запускает программы
    Python (такие как execfile, os.popen, os.system), однако обсуждение этих функций выходит за рамки этой главы.
    Будущие возможности
    В этой главе отражены существующие ныне способы запуска, многие из которых характерны для определенной платформы и в определен
    ное время. В действительности многие методы запуска и выполнения,
    представленные здесь, появились между выпусками разных изданий этой книги. Поэтому вполне возможно, что в будущем появятся новые способы запуска.
    Новые операционные системы и новые версии существующих систем могут также обеспечивать способы запуска, не описанные здесь. Вооб
    ще, т. к. Python продолжает идти в ногу со временем, вы должны быть готовы запускать программы на языке Python способом, имеющим смысл для машин, которые вы используете сейчас или будете исполь
    зовать в будущем – стилом планшетного или наладонного компьюте
    ра, захватывая ярлыки в виртуальной реальности или выкрикивая на
    звания сценариев своим коллегам.
    Изменения в реализации также могут оказывать влияние на способ за
    пуска (например, полноценный компилятор мог бы воспроизводить обычные исполняемые файлы, которые запускаются так же, как и фик
    сированные двоичные файлы ныне). Если бы я знал, что будет в буду
    щем, я бы, наверное, начал переговоры с биржевым маклером, а не пи
    сал бы сейчас этих слов!
    Какие способы следует использовать?
    Ознакомившись с таким богатством возможностей, возникает вполне естественный вопрос – какой способ лучше? Вообще, если вы начинаю
    щий разработчик, для вас было бы желательно использовать интегри
    рованную среду разработки IDLE. Она предоставляет дружественный графический интерфейс и скрывает некоторые детали, связанные с не
    обходимостью настройки. Кроме того, в ее состав входит платформоне
    зависимый текстовый редактор, предназначенный для создания сцена
    риев, и она является стандартной и свободно распространяемой состав
    ляющей системы Python.
    С другой стороны, если вы опытный программист, для вас более ком
    фортным может оказаться простой текстовый редактор, а для запуска программ использовать командную строку системы или щелчок мышью на ярлыке (именно таким способом автор разрабатывает программы на языке Python, но это привычка, выработанная при работе с UNIX). По
    скольку выбор среды разработки во многом зависит от личных предпоч
    тений, я не могу сказать ничего, кроме стандартной рекомендации –
    лучшей средой разработки для вас будет та, которая вам нравится.

    В заключение
    103
    В заключение
    В этой главе мы познакомились с наиболее часто используемыми спо
    собами запуска программ на языке Python: запуск программного кода в интерактивном сеансе работы с интерпретатором и запуск файлов с программным кодом из системной командной строки, щелчком мы
    ши на ярлыке файла, за счет выполнения операции импортирования и с помощью интерфейса интегрированной среды разработки, такой как IDLE. Мы охватили здесь значительную часть темы запуска. Цель этой главы состояла в том, чтобы дать вам достаточный объем знаний,
    владея которыми, вы сможете приступить к работе с программным ко
    дом, который мы начнем писать в следующей части книги. В этой час
    ти мы приступим к изучению самого языка Python, начав с базовых типов данных.
    Но перед этим ответьте на контрольные вопросы по теме, которую мы изучали здесь. Так как это последняя глава первой части книги, она завершается более сложными упражнениями, с помощью которых вы сможете проверить усвоение всех тем, рассматривавшихся в этой час
    ти. За справками и для того, чтобы освежить свои знания, обращай
    тесь к приложению B.
    Закрепление пройденного
    Контрольные вопросы
    1. Как запустить интерактивный сеанс работы с интерпретатором?
    2. Где следует вводить команду, которая запустит файл сценария?
    3. Назовите две ловушки, связанные с щелчком мыши на ярлыках в Windows.
    4. Почему может потребоваться перезагрузить модуль?
    5. Как запустить сценарий из среды разработки IDLE?
    6. Назовите две ловушки, связанные со средой разработки IDLE.
    7. Что такое пространство имен, и какое отношение они имеют к фай
    лам модулей?
    Ответы
    1. В операционной системе Windows интерактивный сеанс работы с интерпретатором можно запустить, щелкнув на кнопке
    Пуск (Start),
    открыть пункт меню
    Все программы (All Programs), выбрать пункт ме
    ню
    Python и затем щелкнуть на пункте меню Python (command line) (Py
    thon (командная строка)). Тот же результат можно получить в Win
    dows и на других платформах, введя команду python в системной ко
    мандной строке, в окне консоли (
    Командная строка (Command Prompt)
    в Windows). Как вариант, можно запустить интегрированную среду

    104
    Глава 3. Как пользователь запускает программы разработки IDLE, главное окно которой представляет собой инте
    рактивную командную оболочку интерпретатора. Если в вашей сис
    теме переменная окружения PATH не включает каталог, в который был установлен интерпретатор Python, вам может потребоваться выполнить команду cd, чтобы перейти в каталог установки Python,
    или указать полный путь к команде python (например, C:\Python25\
    python в Windows).
    2. Системные команды вводятся в программе, которая в вашей системе используется в качестве консоли:
    Командная строка (Command Prompt)
    в Windows; xterm или окно терминала в UNIX, Linux и Nac OS X;
    и т. д.
    3. Если сценарий просто выводит какието данные и завершает рабо
    ту, окно с этой информацией исчезает немедленно, еще до того, как вы сможете увидеть, что было выведено (поэтому в таких ситуаци
    ях удобно использовать функцию raw_input). Сообщения об ошиб
    ках, возникших в ходе работы сценария, также приводят к немед
    ленному закрытию окна еще до того, как вы успеете исследовать его содержимое (поэтому предпочтительнее в ходе разработки исполь
    зовать системную командную строку или среду разработки IDLE).
    4. Интерпретатор Python по умолчанию выполняет импорт (загрузку)
    модуля один раз за сеанс, поэтому, если вы изменили исходный текст модуля и вам необходимо запустить его новую версию, не по
    кидая интерактивный сеанс, вам следует перезагрузить модуль.
    Однако прежде чем выполнить перезагрузку, модуль должен быть импортирован. Запуск программного кода из системной командной строки, щелчком мыши на ярлыке или в интегрированной среде разработки, такой как IDLE, обычно вообще снимает эту проблему,
    так как в таких случаях система каждый раз выполняет текущую версию программного кода.
    5. В окне редактирования текста для файла, который требуется запус
    тить, выберите пункт меню
    Run
    →Run Module (Запустить→Запустить мо
    дуль). В результате программный код в окне редактирования будет запущен как файл сценария верхнего уровня, а вывод, сгенериро
    ванный с этим сценарием, появится в главном окне интерактивной командной оболочки Python.
    6. Интегрированная среда разработки IDLE может зависать при за
    пуске некоторых типов программ, особенно с графическим интер
    фейсом пользователя, которые выполняются в нескольких потоках
    (рассмотрение усовершенствованной методики выходит за рамки данной книги). Кроме того, среда IDLE обладает некоторыми удоб
    ными особенностями, которые не поддерживаются при работе вне этой среды: переменные сценария автоматически импортируются в интерактивную командную оболочку IDLE, но в командной стро
    ке Python такая возможность отсутствует.

    Закрепление пройденного
    105
    7. Пространство имен – это просто пакет переменных (то есть имен).
    В Python он приобретает форму объекта с атрибутами. Каждый файл модуля автоматически становится пространством имен, то есть пакетом переменных, отражающих выполненные операции присваивания на верхнем уровне файла. Пространства имен позво
    ляют избежать конфликтов имен в программах на языке Python:
    поскольку каждый модуль – это самостоятельное пространство имен, файлы должны явно импортировать другие файлы, чтобы ис
    пользовать имена, определяемые в них.
    Упражнения к первой части
    Пришло время начинать писать программный код самостоятельно.
    Здесь представлены достаточно простые упражнения, но некоторые из поднимаемых вопросов связаны с темами, которые будут рассматри
    ваться в последующих главах. Обязательно ознакомьтесь с разделом
    «Часть I, Введение» в приложении с решениями (приложение B), где приводятся ответы – упражнения и их решения иногда содержат до
    полнительные сведения, не рассматривавшиеся в основном тексте час
    ти, поэтому вам определенно следует ознакомиться с ответами, даже если вам удастся ответить на вопросы самостоятельно.
    1. Взаимодействие. Используя системную командную строку, IDLE
    или другой инструмент, запустите интерактивный сеанс интерпре
    татора Python (приглашение к вводу >>>) и введите выражение "Hello
    World!"
    (включая кавычки). Строка должна быть повторно выведена на экран. Цель этого упражнения состоит в том, чтобы помочь вам настроить окружение для запуска интерпретатора Python. В некото
    рых случаях вам может потребоваться сначала выполнить команду cd
    , ввести полный путь к каталогу, куда был установлен выполняе
    мый файл интерпретатора Python, или добавить путь к этому ката
    логу в переменную окружения PATH. При желании значение перемен
    ной PATH в системах UNIX можно установить в файле .cshrc или
    .kshrc
    ; в Windows для этой цели можно использовать файл setup.bat,
    autoexec.bat
    или выполнить настройку переменной окружения с ис
    пользованием инструмента с графическим интерфейсом. Справку по настройкам переменных окружения см. в приложении А.
    2. Программы. В текстовом редакторе, который вы предпочитаете,
    создайте простой файл модуля, содержащий единственную инст
    рукцию print 'Hello module world!', и сохраните его под именем
    module1.py
    . Теперь запустите этот файл какимлибо способом: из среды разработки IDLE, щелчком на ярлыке, вызовом интерпрета
    тора Python из командной строки, передав ему имя файла в виде ар
    гумента (например, python module1.py) и т. д. Попробуйте поэкспери
    ментировать с разными способами запуска, которые обсуждались в этой главе. Какие способы запуска показались вам проще? (На этот вопрос не может быть единственно правильного ответа.)

    106
    Глава 3. Как пользователь запускает программы
    3. Модули. Запустите интерактивный сеанс работы с интерпретатором
    Python (приглашение к вводу >>>) и импортируйте модуль, который был создан в упражнении 2. Попробуйте переместить файл в другой каталог и импортировать его снова из первоначального каталога (то есть запустите Python в каталоге, где производился импорт в пер
    вый раз). Что произошло? (Подсказка: посмотрите, остался ли в пер
    воначальном каталоге файл с байткодом module1.pyc?)
    4. Сценарии. Если ваша платформа поддерживает такую возможность,
    добавьте комбинацию символов #! в начало файла модуля modu+
    le1.py
    , дайте файлу право на выполнение и попробуйте запустить его как обычный исполняемый файл. Что должна содержать первая строка? Обычно комбинация символов #! имеет особое значение только на платформе UNIX, Linux и других UNIXподобных систе
    мах, таких как MAC OS X. Если вы работаете в Windows, попробуй
    те просто запустить файл, введя его имя без предшествующего ему слова «python» (этот способ работает в последних версиях Windows),
    или с помощью диалога
    Пуск
    →Выполнить… (Start→Run…).
    5. Ошибки. Поэкспериментируйте с математическими выражениями и операциями присваивания в интерактивной командной оболочке
    Python. Для начала введите выражение 1/0. Что произошло? Потом попробуйте ввести имя переменной, которой еще не было присвоено значение. Что произошло на этот раз?
    Вы еще можете не знать этого, но вы столкнулись с исключениями
    (эту тему мы подробно будем рассматривать в седьмой части кни
    ги). Там вы узнаете, что с технической точки зрения ваши действия привели к вызову того, что известно под названием обработчик ис+
    ключений по умолчанию, –
    программного кода, который выводит стандартные сообщения об ошибках. Если вы не выполняете пере
    хват ошибок в своих программах, это за вас сделает обработчик по умолчанию, который выведет сообщение об ошибке.
    Для отладки сложного программного кода среда разработки IDLE
    предоставляет отладчик с графическим интерфейсом (описывается в разделе «Дополнительные возможности IDLE», в этой же главе),
    а в состав стандартной библиотеки модулей Python входит модуль с именем pdb, реализующий отладчик с интерфейсом командной строки. (Подробнее о модуле pdb можно узнать из руководства к стан
    дартной библиотеке.) Для начала вам вполне будет достаточно стан
    дартного механизма обработки ошибок – он позволит узнать причи
    ну ошибки, а также покажет, какие строки кода выполнялись в мо
    мент ее появления.
    6. Прерывание программы. В командной строке интерпретатора Py
    thon введите следующие инструкции:
    L = [1, 2]
    L.append(L)
    L

    Закрепление пройденного
    1   ...   10   11   12   13   14   15   16   17   ...   98


    написать администратору сайта