10

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

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

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

有没有办法一次轻松地将 .cpp 和 .pyx文件编译成可执行文件

这样我就可以摆脱很多 boost::python 包装器的东西,得到一个整洁的 c++/python 组合,而不必导入共享库并用 pyinstaller 打包整个东西?

4

1 回答 1

1

你应该调查:

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

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

于 2012-05-27T18:53:39.350 回答