Pyrex е формулировка за изписване Python модули за разширение.
Pyrex е език, специално проектиран за написването Python разширителни модули. Той е проектиран да се преодолее пропастта между хубаво, високо ниво, лесен за използване света на Python и разхвърлян, ниско ниво света на C.
Може би се чудите защо някой ще иска специален език за това. Python е много лесно да се разшири с помощта на C или C ++, нали? Защо просто не напишете вашите модули за разширение на един от тези езици?
Е, ако някога сте писмено удължаване модул за Python, вие ще знаете, че нещата не са толкова лесно, колкото всичко това. На първо място, налице е справедлива част от шаблон код, за да напишете, преди да можете дори да сляза на земята. Тогава сте изправени пред проблема за конвертиране между Python и C типове данни. За основните видове, като например номера и струни това не е твърде лошо, но нищо по-сложен и сте в бране на Python предмети освен с помощта на Python / C API повиквания, която изисква от вас да бъде щателно за поддържане на референтните обвинения, проверка за грешки на всяка крачка и почистване правилно, ако нещо се обърка. Всякакви грешки и имате груба катастрофата, че е много трудно да дебъгване.
Различни инструменти са разработени, за да облекчи някои от пречките за получаване на разширение код, от които може би SWIG е най-известният. SWIG отнема файл определение, състояща се от смес от C код и специализирани декларации, и произвежда модул разширение. Той пише всички шаблон за вас, а в много случаи можете да го използвате, без да знаят за API Python / C. Но вие трябва да използвате API повиквания, ако се изисква всяко значително преструктуриране на данни между Python и C.
Нещо повече, SWIG дава никаква помощ на всички, ако искате да създадете нов вграден тип Python. Той ще генерира чисти-Python класове, които обвивка (в малко по-опасен начин) указатели към структури от данни C, но създаването на истинските видове удължители е извън неговия обхват.
Друг забележителен опит да прави по-лесно да се разшири Python е PyInline, вдъхновена от подобен инструмент за Perl. PyInline ви дава възможност да вградите парчета на C код в разгара на файл Python, и автоматично ги екстракти и ги обобщава в едно разширение. Но го преобразува само основните видове автоматично и като с SWIG, то не е насочено към създаването на нови видове Python.
Pyrex цели да отиде далеч отвъд това, което всеки от тези предишни инструменти предоставя. Pyrex се занимава с основните типове също толкова лесно, колкото SWIG, но тя също така ви позволява да пишете код, за да конвертирате между произволни структури Python данни и произволни структури C данни, по прост и естествен начин, без да знаят нищо за Python / C API. Точно така - нищо! Нито пък ще трябва да се притеснявате за справка и везните за проверка на грешки - всичко е взето грижи за автоматично, зад кулисите, точно както е в тълкува кода на Питон. И това, което е повече, Pyrex ви позволява да дефинирате нова вградена видове Python също толкова лесно, колкото можете да дефинирате нови класове в Python.
Какво е новото в тази версия:
· Tiny Bugfix да поправи проблем таб / пространство в разширението на distutils.
Софтуер детайли:
Версия: 0.9.4.1
Дата на качване: 3 Jun 15
Разрешително: Безплатно
Популярност: 113
Коментари не е намерена