在c编译的python代码上使用pyinstaller

时间:2017-11-23 21:22:55

标签: python cython pyinstaller

我正在尝试使用pyinstaller将一个单个c文件转换为可执行文件。现在我想用pyinstaller编译的原因是因为exe文件应该在mac和windows机器上运行。

现在,怎么办呢?

1 个答案:

答案 0 :(得分:0)

您可以在Pyinstaller可执行文件中包含Cython / C模块。

但是,Pyinstaller不适合您制作适用于Mac和Windows的单个可执行文件的目标。 From the first question of the Pyinstaller FAQs:

  

我可以使用PyInstaller作为交叉编译器吗?    我可以在OS X下运行时打包Windows二进制文件吗?

     

不,这不受支持。 [...]

您似乎从根本上误解了Pyinstaller的作用:它使用Python及其库打包Python脚本,以允许您使用Python脚本而无需单独安装Python。要做到这一点,虽然它需要打包特定于平台的Python版本,因此可执行文件只能在创建它的同一操作系统上运行。

此外,它还通过zipping them up and the extracting them into a temporary folder when run处理已编译的库(如Cython模块)。因此,即使 Pyinstaller设法将两个版本的Python捆绑在一起工作在Windows和Mac上,你的C编译模块仍然只能编译为一个平台,所以通过这样做,你可以用它来描述你和#39;实际上使你的代码不那么便携了。

我不相信有任何明显的工具可以做你要求的事情。