How does this compare to pybind11?
If you want to / can share your header files, cppyy is a very convenient way of being able to call your C++ code from Python. I'm not sure if there is a way to use it without headers.
I looked into it a bit further, and cppyy does have provisions for this: https://cppyy.readthedocs.io/en/latest/bindings_generation.h...
I may have misread that page, but it looks like you can create a .rootmap and .pcm file and distribute that instead of the C++ headers.