2013-02-15 3 views
0

Я пытаюсь найти способ проверить свой код на C с помощью скриптов python. До сих пор мои данные:Python & C: Можно ли смешивать Ctypes и Swig вместе?

1) с помощью Ctypes я могу легко загрузить его и вызвать функцию непосредственно из python. Кроме того, все происходит во время выполнения, поэтому нет необходимости компилировать/обертывать материал.

2) Однако переписывание всех типов в python является утомительным и подверженным ошибкам, особенно для сложных типов данных. И всякий раз, когда меняются определения, мне придется обновить определение в сценариях python.

Мне интересно, так как Swig может экспортировать типы данных автоматически, можно ли смешивать Swig и Ctypes вместе? т. е. использовать Swig для экспорта типов данных, которые могут использоваться для вызова функций через Ctypes.

p.s Я не уверен, подходит ли Cython, но у нас нет Cython в окружающей среде.

+0

Ну, вам нужно будет установить Cython. Однако, если вы имеете дело с Swig, то наверняка у вас есть все требования уже для Cython? – Arafangion

+0

@Arafangion, confused, Swig зависит от Cython? Другое дело, что наша среда здания отличается от среды тестирования, в тестовой среде у нас нет swig или cython. – wei

ответ

0

В итоге я использовал Swig с динамической привязкой к такой библиотеке, сгенерированной кодом C. Таким образом, я должен включать только заголовочные файлы в файле интерфейса swig, чтобы сообщить, какие функции/типы данных будут отображаться. Другим преимуществом такого подхода является то, что я могу написать тестовые вспомогательные функции в C и легко разоблачить их.

Смежные вопросы