Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 25, 2012 18:40:44

denis230101
От:
Зарегистрирован: 2012-02-25
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Использование методов классов с++ в python-программе

Здравствуйте.
У меня следующая проблема: имеется набор файлов .cpp, в которых реализованы нужные мне классы (на языке c++ соответственно). Мне необходимо вызывать методы этих классов из программы на языке python. В связи с этим возникло несколько вопросов:

1) Возможно ли обращаться к этим методам, используя модуль ctypes, предварительно скомпилировав .cpp файлы в виде разделяемой библиотеки? Если да, то каким образом (в документации по ctypes это не описано).
2) Если модуль ctypes для этого не подходит, существует ли какой-нибудь аналогичный ему модуль для решения данной задачи?
3) Если такого модуля не существует, то каким образом решить данную задачу? Если способов решения несколько, хотелось бы узнать наиболее простой для понимания и быстрый способ.



Офлайн

#2 Фев. 25, 2012 19:21:33

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Использование методов классов с++ в python-программе

1) да. Дописываете функции на языке c++ (обычные) которые вызывают методы ваших классов. Экспортируете и используете при помощи ctypes.
2) ну он подходит. Есть много вариантов подцепления. например boost python, swig и т.п. Эти подходы не требуют в простейшем варианте никаких модулей - делают из вашего кода уже разделяемую библиотеку которую можно подгрузить в python.
3) простота реализации как раз в этом порядке ctypes,boost(если не боитесь ставить boost),swig
Более навороченные способы позволяют автоматизировать подключение, но требуют большего времени на освоение (за денек можно освоить). Поэтому если не очень много функций -пишите сами обертки и используйте ctypes.



Офлайн

#3 Фев. 25, 2012 19:54:33

denis230101
От:
Зарегистрирован: 2012-02-25
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Использование методов классов с++ в python-программе

Большое спасибо!



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version