Как лучше всего скомпилировать проект C ++ / Cython в исполняемый файл?

У меня есть проект с кучей файлов C ++ и Python / Cython. До сих пор я сначала разрабатывал часть C ++ и скомпилировал ее в статическую библиотеку с qmake. Некоторым методам подвергается boost :: python и выполняется из файла .py.

Теперь я хотел скомпилировать все это в автономный исполняемый файл.

Мой вопрос сейчас: что это лучший способ сделать это? Я попытался переключиться на Cython, скомпилировать файлы python и связать библиотеку. Но, похоже, нет прямого пути с distutils / setup.py для компиляции исполняемых, только разделяемых библиотек.

Есть ли способ легко скомпилировать файлы .cpp и .pyx в исполняемый файл сразу?

Чтобы я мог избавиться от большого количества файлов boost :: python wrapper и получить аккуратное сочетание c ++ / python без необходимости импортировать общую библиотеку и упаковать весь материал с помощью pyinstaller?

One Solution collect form web for “Как лучше всего скомпилировать проект C ++ / Cython в исполняемый файл?”

Вы должны изучить:

  • pyinstaller (или py2exe ) для windows / linux
  • py2app для osx

Поскольку python является вашей точкой входа, вы сможете объединить автономный интерпретатор, среду и расположение ресурсов в приложение / exe / binary. Он будет собирать все ваши библиотечные модули в свои автономные пакеты сайтов

Если вы не используете обычные файлы с чистым py и имеете только файлы cython, тогда также возможно встроить интерпретатор в один из них в качестве точки входа с флагом -embed в cython: http: //wiki.cython .org / EmbeddingCython
Обратите внимание, что это аналогичный подход «замораживания» к ранее упомянутым вариантам упаковки, но не требует дополнительной длины для создания автономного env

  • Проблема с Python / Cython при импорте файлов и методов
  • Может ли Cython скомпилировать EXE?
  • вызывающие точечные произведения и операции линейной алгебры в Китоне?
  • Почему Cython медленнее, чем векторизация NumPy?
  • Cython: Должен ли я использовать np.float_t вместо двойного для типизированных видов памяти
  • Сравнение производительности Fortran, Numpy, Cython и Numexpr
  • Как исследовать функцию, определенную в модуле расширения Cython C
  • Назначение данных numpy в цитоне для представления
  • Как я могу установить флаги компилятора Cython при использовании pyximport?
  • Компиляция файлов pyx с зависимостями в разных пакетах
  • Выделяйте промежуточные многомерные массивы в Cython без приобретения GIL
  • Python - лучший язык программирования в мире.