Подтвердить что ты не робот

Есть ли причина, по которой Python ctypes.CDLL не может автоматически генерировать restype и argtypes из файлов заголовков C?

Например, было бы неплохо иметь возможность сделать это:

from ctypes import CDLL
mylib = CDLL('/my/path/mylib.so',header='/some/path/mylib.h')

вместо

from ctypes import *
mylib = CDLL('/my/path/mylib.so')
mylib.f.restype = c_double
mylib.f.argtypes = [c_double, c_double]
mylib.g.restype = c_int
mylib.g.argtypes = [c_double, c_int]

Мой опыт работы с python предполагает, что либо что-то очень близкое к этому уже сделано, и я просто не смог его найти, или что есть хорошая причина не делать этого. Есть ли в этом случае?

4b9b3361

Ответ 1

Я задал себе тот же вопрос, и, прежде чем я отправился по этой дороге слишком далеко, я столкнулся с ctypesgen:

http://code.google.com/p/ctypesgen/

Он будет обрабатывать все это для вас, хотя вам нужно будет немного научиться впереди. Мы используем ctypesgen для генерации одной версии привязок Python для привязок Subversion. Он работает очень хорошо.