Марк Лутц - Изучаем Python, Четвертое издание (1184811), страница 30
Текст из файла (страница 30)
Последнюю информацию обэтой среде и ссылки для загрузки вы без труда найдете в Интернете.PythonWinPythonWin����������������������������������������������������������� – это свободно распространяемая интегрированная среда разработки на языке ��������������������������������Python��������������������������для операционной системы �����������������Windows����������. Она распространяется в составе пакета ActivePython компании ActiveState (но ееможно также получить отдельно на сайте http://www.python.org).
По своимвозможностям она несколько напоминает �����������������������������IDLE�������������������������и имеет несколько полезных расширений, специфичных для Windows, например PythonWin обладает поддержкой COM-объектов. В настоящее время IDLE обладает болееширокими возможностями, чем PythonWin (например, благодаря тому,что IDLE использует для своей работы два процесса, она реже зависает).Однако PythonWin предлагает инструменты для разработки программ подWindows, которые отсутствуют в IDLE.
Более подробную информацию вынайдете на сайте http://www.activestate.com.ПрочиеСуществует еще примерно с полдесятка других известных мне интегрированных сред разработки (например, WingIDE, PythonCard), и со временемих число будет увеличиваться. Фактически почти в каждом современномтекстовом редакторе для программистов имеется поддержка языка Python,которая устанавливается вместе с редактором по умолчанию или в виде отдельных расширений. Например, редакторы Emacs и Vim обладают существенной поддержкой языка Python.Я не буду описывать все возможные варианты здесь, – вы сами можетеузнать о них на сайте http://www.python.org или выполнив поиск в Google построке «Python IDE» (IDE для Python).
Можно также попробовать поискатьпо строке «Python editors» (редакторы Python) – это должно привести васна страницу Wiki, где содержится информация о множестве интегрированных сред разработки и текстовых редакторов для Python.Другие способы запускаК настоящему моменту мы рассмотрели, как выполнять программный кодв интерактивной командной оболочке интерпретатора и как запускать программный код, сохраненный в файлах, из системной командной строки, из исполняемых сценариев в системе UNIX, щелчком мыши, с помощью операцииимпортирования модулей, с помощью функции exec и в интегрированной средеразработки, такой как IDLE.
Это подавляющее большинство способов, которые встретятся вам в этой книге. Однако существует еще ряд способов запускапрограммного кода на языке Python����������������������������������������������������������������������������������, большая часть которых имеет узкоспециализированное назначение. В следующих нескольких разделах мы короткопознакомимся с некоторыми из них.Встраивание вызововВ некоторых особых случаях программный код на языке Python может запускаться из других программ. В таких ситуациях мы говорим, что программына языке Python встроены в другие программы (то есть запускаются другимипрограммами). Сам программный код Python может храниться в текстовомфайле, в базе данных, извлекаться из страницы HTML или из документа XML110Глава 3. Как пользователь запускает программыи так далее. В этом случае уже не вы, а другая программа предлагает интерпретатору выполнить программный код, созданный вами.Такой способ запуска программного кода обычно используется для обеспечения поддержки возможности настройки у конечного пользователя.
Например,игровая программа может позволять изменять ход игры, запуская в ключевыемоменты внедренный программный код на языке Python, доступный пользователю. Поскольку программный код на языке Python интерпретируется,внесение изменений в этот программный код не требует перекомпилироватьвсю систему (о том, как интерпретатор выполняет программный код, рассказывается в главе 2)В подобных случаях программа, вызывающая программный код на языке ���Python��������������������������������������������������������������������, может быть написана на языке C�������������������������������������������������������������������������, C�������������������������������������������������������������������++ и даже �����������������������Java�������������������, когда используется интерпретатор Jython.
Например, вполне возможно создавать и выполнятьстроки программного кода Python из программ на языке C, вызывая функцииAPI времени выполнения интерпретатора Python (набор служб, экспортируемых библиотеками, созданными при компиляции Python на вашей машине):#include <Python.h>...Py_Initialize();// Это язык C, а не PythonPyRun_SimpleString(“x = ‘brave ‘ + ‘sir robin’”); // Но он запускает код на// языке PythonВ этом фрагменте программа на языке C, скомпонованная с библиотекамиPython, инициализирует интерпретатор и передает ему для выполнения строку с инструкцией присваивания. Программы на языке C могут также получать доступ к объектам Python и взаимодействовать с ними, используя другиефункции API языка Python.Эта книга не рассматривает вопросы интеграции Python/C, но вы должнызнать, что в зависимости от того, как ваша организация планирует использовать Python, вы можете оказаться одним из тех, кому действительно придется запускать программы на языке Python.
При этом более чем вероятно, выпо-прежнему сможете использовать интерактивную оболочку интерпретатораи приемы запуска файлов, описанные выше, чтобы протестировать программный код отдельно от программ, куда этот код внедряется. 1Фиксированные исполняемые двоичные файлыФиксированные исполняемые двоичные файлы, описанные в главе 2, представляют собой комбинацию байт-кода программы и интерпретатора Python,объединенных в одном исполняемом файле. Благодаря этому такие программы могут запускаться точно так же, как любые другие программы (щелчкомна ярлыке, из командной строки и другими способами). Такая возможностьзамечательно подходит для случая распространения готовых программных1О встраивании программного кода Python в программы на языке C/C++ подробнорассказывается в книге «Программирование на Python» (СПб.: Символ-Плюс, 2002).Используя прикладной интерфейс встраиваемого интерпретатора, вы сможете напрямую вызывать функции Python, загружать модули и производить прочие действия.
Кроме того, следует отметить, что система Jython позволяет программам наязыке Java вызывать программный код на языке Python, используя прикладной интерфейс на языке Java (класс интерпретатора Python).Другие способы запуска111продуктов, но она не предназначена для использования в процессе разработкипрограмм. Обычно фиксирование файлов производится непосредственно передотправкой (когда разработка уже завершена) программы заказчику.
Более подробная информация об этой возможности приводится в предыдущей главе.Возможность запуска программиз текстового редактораКак упоминалось ранее, большинство текстовых редакторов для программистов, хотя и не являются полноценными интегрированными средами разработки, тем не менее поддерживают возможность редактирования и запускапрограмм на языке Python. Такая поддержка может быть изначально встроена в редактор или доступна в виде расширений, которые можно загрузить изСети.
Например, если вы знакомы с текстовым редактором Emacs, вы сможетередактировать программный код на языке Python и запускать его, не покидаятекстовый редактор. Дополнительную информацию о текстовых редакторахвы найдете на странице http://www.python.org/editors или поискав в Google пофразе «Python editors» (редакторы Python).Прочие возможности запускаВ зависимости от используемой платформы могут существовать и другие способы запуска программ Python. Например, в некоторых системах Macintoshвыполнить программу на языке Python можно, перетащив мышью ярлык файла программы на ярлык интерпретатора Python. В Windows сценарии можнозапускать с помощью пункта Выполнить...
(Run…) меню кнопки Пуск (Start). Наконец в состав стандартной библиотеки Python входят вспомогательные функции, позволяющие запускать программы на языке Python из других программна языке Python (такие, как os.popen, os.system), однако обсуждение этих функций выходит за рамки этой главы.Будущие возможностиВ этой главе отражены существующие ныне способы запуска, многие из которых характерны для определенной платформы и в определенное время. В действительности, многие методы запуска и выполнения, представленные здесь,появились между выпусками разных изданий этой книги.
Поэтому вполне возможно, что в будущем появятся новые способы запуска.Новые операционные системы и новые версии существующих систем могуттакже обеспечивать способы запуска, не описанные здесь. Вообще, т. к. Pythonпродолжает идти в ногу со временем, вы должны быть готовы запускать программы на языке Python способом, имеющим смысл для машин, которые выиспользуете сейчас или будете использовать в будущем, – стилом планшетногоили наладонного компьютера, захватывая ярлыки в виртуальной реальностиили выкрикивая названия сценариев своим коллегам.Изменения в реализации также могут оказывать влияние на способ запуска(например, полноценный компилятор мог бы воспроизводить обычные исполняемые файлы, которые запускаются так же, как и фиксированные двоичныефайлы ныне).