Как лучше всего скомпилировать проект C ++ / Cython в исполняемый файл?
У меня есть проект с кучей файлов C ++ и Python / Cython. До сих пор я сначала разрабатывал часть C ++ и скомпилировал ее в статическую библиотеку с qmake. Некоторым методам подвергается boost :: python и выполняется из файла .py.
Теперь я хотел скомпилировать все это в автономный исполняемый файл.
- Организация проекта с Cython и C ++
- Объявление массива numpy и c-указателя в cython
- Cython & C ++: передача по ссылке
- Как импортировать функцию из .pyx-файла в python?
- Как можно определить значение #defined C для Python в модуле Cython?
Мой вопрос сейчас: что это лучший способ сделать это? Я попытался переключиться на Cython, скомпилировать файлы python и связать библиотеку. Но, похоже, нет прямого пути с distutils / setup.py для компиляции исполняемых, только разделяемых библиотек.
Есть ли способ легко скомпилировать файлы .cpp и .pyx в исполняемый файл сразу?
Чтобы я мог избавиться от большого количества файлов boost :: python wrapper и получить аккуратное сочетание c ++ / python без необходимости импортировать общую библиотеку и упаковать весь материал с помощью pyinstaller?
- Использование Cython для разработки игры?
- Статическая связь Cython со временем выполнения python?
- Обтекание std :: array в Cython и отображение его в представлениях памяти
- Могу ли я статически связать модули Cython с исполняемым файлом, который встраивает python?
- Как сохранить имя класса C ++ без изменений с Cython?
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 между print obj и print obj .__ str __ ()
- Python с памятью ключей, которые были доступны?