如何从 .py 文件中获取二进制文件

Tru*_*0ur 12 linux compiler python

我需要一个程序来编译python源代码;正如我一开始发现的那样,我需要从我的 python 脚本中创建一个二进制文件。

我已经检查了很多链接,但仍然没有找到适用于 Linux 的东西。

我找到py2bin了 OS/X,但没有适用于 Linux 的版本。

Rui*_*iro 7

在我看来,您在 Google 中的问题源于将能够从 python 生成二进制文件的编译器称为“反汇编器”。

我还没有找到真正的编译器,但是我在 Google 中找到了一个 python编译器打包,它将所有必需的文件打包到一个目录中,并使用一个可执行前端混淆它们:http ://www.pyinstaller.org/ 上的 pyinstaller ;这似乎是积极支持,作为最后的3.4版本被发布于2018年9月9日,违背py2bin这似乎是不积极维护。

特征:

  • 将 Python 程序打包成标准可执行文件,可在未安装 Python 的计算机上运行。
  • 多平台,适用于:
    Windows(32位和64位)、
    Linux(32位和64位)、
    Mac OS X(32位和64位),
    为FreeBSD、Solaris、HPUX提供支持,和 AIX。
  • 多版本:
    支持Python 2.7和Python 3.3—3.6。

安装:

pip install pyinstaller
Run Code Online (Sandbox Code Playgroud)

然后,转到您的程序目录并运行:

pyinstaller yourprogram.py
Run Code Online (Sandbox Code Playgroud)

这将在名为 dist 的子目录中生成包。

  • pyinstaller 不编译 python 程序,它只是打包以便结果包可以像二进制包一样使用。所以实际上是普通python的提取器和执行。(它使用pyc,所以简单的逆向工程很困难,但如果要避免逆向工程,也应该使用改变标识符的工具)。 (4认同)
  • 我不知道。在较早的时候,那里有一个Python到C(+编译器)的地方(py2bin太旧了,所以也许......)。Cython 可能是一个解决方案,但我不知道是否以及如何修改代码(因此它将不再是纯 Python)。 (2认同)

小智 5

尝试一下努特卡。它需要 a.py然后创建一个.bin。它在 Gnu+Linux 上运行,并且存在于最流行发行版的软件存储库中。

Nuitka 是一个用 Python 编写的 Python 编译器。

它与 Python 2.6、2.7、3.3、3.4、3.5、3.6 和 3.7 完全兼容。

你向它提供你的Python应用程序,它会做很多聪明的事情,并吐出一个可执行文件或扩展模块。

免费许可证(阿帕奇)。

https://nuitka.net/pages/overview.html