Разработчик (и) | Грег Юинг |
---|---|
Первый выпуск | 3 апреля 2002 г.; 18 лет назад (2003-04-03) |
Стабильный выпуск | 0.9.9 / 12 апреля 2010 г.; 10 лет назад (2010-04-12) |
Написано на | Python, C |
Операционная система | Кросс-платформенная |
Тип | Язык программирования |
Веб-сайт | www.cosc.canterbury.ac.nz / ~ greg / python / Pyrex / |
Pyrex - это язык программирования разработан для помощи в создании модулей Python . Его синтаксис очень близок к Python. Цель состоит в том, чтобы упростить программистам Python написание кода поддержки, отличного от Python, обычно необходимого для взаимодействия модулей на языке, который максимально приближен к Python.
Сам Python предоставляет только C API для написания модулей расширения, что позволяет записывать функции и типы данных на C. К ним затем можно получить доступ из Python. Таким образом, также возможно обернуть функции и типы данных существующих библиотек C как объекты Python и, следовательно, сделать их доступными для Python.
Существуют такие инструменты, как SWIG или ctypes библиотеки внешних функций Python, которые можно использовать для этой задачи, не требуя большого количества дополнительного кода, но это ограничивается созданием внешняя библиотека, доступная в коде Python. Если требуется корректировка API, связующий код снова нужно писать вручную. Вот где подходит Pyrex.
Pyrex позволяет пользователю писать модули расширения на языке, подобном Python, который может напрямую обращаться к внешнему коду C. Сходство синтаксиса Pyrex с синтаксисом Python позволяет легко писать модули Python, поскольку нет необходимости изучать другой язык (например, C или C ++ ), и, возможно, нет необходимости писать какой-либо связующий код. Все, что нужно, - это указать имена файлов C-заголовков, перечислений, типы данных и функции, к которым требуется доступ в модуле. Затем их просто используют, как если бы они были объектами Python. Компилятор Pyrex автоматически сгенерирует необходимый связующий код и скомпилирует код Pyrex в рабочий модуль Python.
.