Comments 4
Лучше расскажите как такое отлаживать. Вот у вас что-то в плюсовой библиотеке сегфолтнуло, вы достаете дебаггер чтобы узнать, в каком месте произошел вход в бибилиотеку... А там только питоновые потроха. Как с этим жить?
На самом деле есть пример на YouTube, как разработчик Ogre 3D(игровой движок), показывает как с помощью visual studio такие симбиозы можно отлаживать.
https://youtu.be/P9edayG8rkg?si=9yhlsgKvc8ze92_q
Компилировать код без оптимизаций и с отладочной информацией, а в gdb/lldb/visual studio запускать питон. Примерно так.
Статья является следствием полученного личностного опыта
Привет всем.
Мой опыт использования pybind11 в плюсовом проекте:
-на таком встроенном питоне сложную логику писать и отлаживать очень тяжело (с вызовами pandas, например)
-все данные к нему должны приходить из того же потока, в котором он работает, были тоже с этим проблемы, решались какими-то костылями
-перевод структур из плюсов в питон и обратно тоже гемор
-память отжирал, уже не помню чем решилось, мбыть и так осталось
В общем, что в итоге. Убрали его полностью из проекта, теперь питон работает отдельно, дергаем его по сети, все хорошо.
Вывод, лучше не надо использовать pybind11. Ну или в крайнем случае для мелочи какой-то (тогда почему не на плюсах).
Настройка C++ проекта c OpenMP. Обертывание С++ для Python с помощью pybind11 и CMake