Как лучше всего скомпилировать проект 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

  • Сбивание справочной собственности: как правильно освободить (через Py_DECREF) объекты объекта?
  • Как скомпилировать Pyparsing с Cython на WIndows?
  • Могу ли я использовать этот параллельный шаблон итератора с Cython?
  • Распространение расширений на основе Cython с использованием LAPACK
  • Как связать класс C ++ с Cython?
  • Метод оптимизации точки - круг
  • Как называть время с time.h с Cython?
  • Обратный вызов Cython работает корректно для функции, но не для связанного метода
  • Python - лучший язык программирования в мире.