Пакет Python с кодовой базой C ++ [закрыто]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Пакет Python с кодовой базой C ++ [закрыто]

Сообщение Anonymous »

Я написал научную симуляцию C ++, которую я хотел бы обернуть в пакет Python, чтобы пользователи могли легко установить его через Pip и запустить его из Python.
Я новичок в упаковке, и мне нужен совет по тому, какой подход выбрать. Упаковка, по-видимому, подвергается постоянным изменениям, и дополнительная сложность, которую часть C ++ должна работать на любой архитектуре, оставляет меня немного перегруженной. < /P>
Моя текущая установка-это C ++ Компилированный двоичный файл, который проводится из Python через subprocess.popen . Помимо этого, есть несколько добавленных файлов Python, содержащих утилиту обработки данных Pure Python.
Я понимаю что есть два возможных подхода: < /p>
  • Поставьте пакет с составленными двоичными файлами. Это может быть достигнуто с помощью Setuptools и CibuildWheels для создания колес для любой архитектуры системы. Файл Cmake в пакет), так что мне не нужно беспокоиться о доставке системных файлов/двоичных файлов.
< P> По мере того, как пакет все еще разрабатывается, я думаю, что с вариантом 2) на данный момент будет лучше. Использование связей C ++, такими как pybind11 и nanobind, но я наблюдал значительное падение эффективности по сравнению с вызовом бинарника через подпроцесс. Popen .
Любое комментарии о том, что лучше всего подходит для этого Буду оценены усилия или полезные ссылки на современное руководство. Один из них используется для создания пакета Python, в котором функция Python вызывает компилированный код C ++, так что компиляция кода C ++ происходила во время установки пакета через PIP Install , чтобы пользователь мог быть агностическим для чего-либо непитонического (например, не нужно знать C ++, не нужно знать, что такое компиляция, не нужно знать Cmake)?

Подробнее здесь: https://stackoverflow.com/questions/794 ... c-codebase
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»