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