Сначала вы должны решить, какова ваша конкретная цель. Официальная документация Python по расширению и внедрению интерпретатора Python была упомянута выше, я могу добавить хороший обзор двоичных расширений . Варианты использования можно разделить на 3 категории:
- ускорительные модули : работать быстрее, чем эквивалентный чистый код Python, запускаемый в CPython.
- модули-оболочки : для представления существующих интерфейсов C в коде Python.
- низкоуровневый доступ к системе : для доступа к низкоуровневым функциям среды выполнения CPython, операционной системы или базового оборудования.
Чтобы дать более широкую перспективу для других заинтересованных лиц, и поскольку ваш первоначальный вопрос немного расплывчатый («к библиотеке C или C ++»), я думаю, эта информация может быть вам интересна. По ссылке выше вы можете прочитать о недостатках использования бинарных расширений и их альтернатив.
Помимо других предложенных ответов, если вы хотите ускорительный модуль, вы можете попробовать Numba . Он работает «путем генерации оптимизированного машинного кода с использованием инфраструктуры компилятора LLVM во время импорта, во время выполнения или статически (с помощью включенного инструмента pycc)».