Вызов C++ из питона
Оказывается, кроме ctypes и Cython с тех пор как я смотрел появился еще один способ, pybind11 (если не считать всякие граали).
Но во всех трех подходах надо че-то думать: в ctypes надо код в динамическую библиотеку запихнуть, а потом ее еще и загрузить; в Cython надо немного поприседать с изменением исходников и типизацией; в pybind11 — писать экспорты.
Отрыл cppyy. В нем чтобы импортировать C++ класс достаточно написать
cppyy.include("someClass.cpp")
instance = cppyy.gbl.SomeClass()
… и все. Методы и классы легко грузятся по имени. Работает это все за счет cling — интерпретатора для C++. Можно грабить корованы создавать экземпляры стандартных классов, например, vector.
Разумеется, цена этому — производительность, но питон же, да и то, не все так просто.
Комментарии