如何最好地将C ++ / Cython项目编译成可执行文件?

时间:2012-05-27 16:42:59

标签: c++ python compilation cython

我有一个包含大量C ++和Python / Cython文件的项目。到目前为止,我主要开发了C ++部分并使用qmake将其编译为静态库。一些方法用boost :: python公开,并从.py文件执行。

我现在想把整个事情编译成一个独立的可执行文件。

我现在的问题是:最好的方法是什么?我试图切换到Cython,编译python文件并链接库。但似乎没有直接的方法使用distutils / setup.py来编译可执行文件,只有共享库。

有没有办法轻松同时将.cpp和.pyx 文件编译成可执行文件

这样我就可以摆脱很多boost :: python包装器并获得c ++ / python的巧妙组合,而无需导入共享库并使用pyinstaller打包整个内容?

1 个答案:

答案 0 :(得分:1)

你应该看看:

由于python是您的入口点,您将能够将独立的解释器,环境和资源位置捆绑到app / exe / binary中。它会将您的所有库模块收集到其自包含的站点包

如果您不使用任何普通的纯py文件并且只有cython文件,那么也可以将解释器嵌入其中一个作为入口点,并使用--embed标记到cython: http://wiki.cython.org/EmbeddingCython
注意,这是前面提到的包装选项的类似“冻结”方法,但是没有额外的长度来构建一个自包含的env