alexeyvanzhula
Июнь 5, 2013 20:37:26
Есть, например, простой питоновский класс.
Мне нужно его переписать на Си так чтобы он был обычным питоновским модулем и чтобы мог наследоваться так же как и питоновский прототип. То есть ClassA( переписаный на Си питоновский класс) и наследование его в питоне должно быть прозрачно ( class ClassB( ClassA ) ).
Соответственно функции портированого класса должны возвращать, преобразованые в питоновский тип, результаты.
Что проще для этого использовать? Хватит ли для этого distutils. И вообще с удовольствием выслушаю любые размышления на эту тему.
Shaman
Июнь 5, 2013 21:19:26
distutils, вродь, немного о другом. Для аналогичных задач пока остановил свой выбор на cython, подход которого мне показался более простым и прозрачным чем у нахваливаемого boost python.
alexeyvanzhula
Июнь 5, 2013 21:52:38
я не хочу получать транслированый с ситона код. Я хочу написать на С аналогичный класс для дальнейшего наследования в питоне.
Ой distutils перепутал с setuptools.
Shaman
Июнь 5, 2013 21:58:55
alexeyvanzhula
я не хочу получать транслированый с ситона код.
Это дело ваше.
alexeyvanzhula
Я хочу написать на С аналогичный класс для дальнейшего наследования в питоне.
Писал на C++ классы и заворачивал их цитоном в питон.
Выше python api только буст, насколько я знаю.
alexeyvanzhula
Июнь 5, 2013 22:06:05
я имел ввиду способ описанный здесь
http://habrahabr.ru/post/44520/Все таки код написаный на чистом Си вызывает больше уверенности в скорости исполнения итогового модуля. Поправьте если я не прав. Мне нужна максимальная скорость наследуемого класса. И только Си (не ++)
Shaman
Июнь 5, 2013 22:16:35
alexeyvanzhula
я имел ввиду способ описанный здесь
При таких ограничениях придётся напрямую общаться с python api, который придётся основательно выучить, и иметь массу удовольствия от ручного контроля ссылок на питон-объекты.
alexeyvanzhula
Июнь 6, 2013 07:50:31
я в принципе так и думал. спасибо.