14

我想知道是否可以从 Python 脚本创建可执行模块。我需要拥有 Python 脚本的最大性能和灵活性,而不需要在 Python 环境中运行。我将使用此代码按需加载用户模块以自定义我的应用程序。

4

4 回答 4

14
  • pyrex可以将类似 python 的源代码编译为 python 扩展模块
  • rpython,它允许您在对各种后端(如 C、LLVM、.Net 等)有一些限制的情况下编译 python。
  • 还有将 python 转换为 C++ 的shed-skin,但我不能说它是否有任何好处。
  • PyPy实现了一个 JIT 编译器,它试图通过将运行时运行的部分转换为机器代码来优化运行时,如果您为 PyPy 解释器编写可能是一条可行的路径。
  • 在 PyPy 中研究 JIT 的同一位作者之前曾写过psyco,它在 CPython 解释器中优化了 python。
于 2008-10-15T15:11:26.177 回答
7

您可以使用 py2exe 之类的东西将您的 python 脚本编译成 exe,或者使用 Freeze 来编译 linux 二进制文件。

请参阅:如何使用 Python 创建可直接执行的跨平台 GUI 应用程序?

于 2008-10-15T15:05:47.343 回答
2

我使用Cython取得了很多成功,它基于并扩展了 pyrex:

Cython 是一种语言,它使为 Python 语言编写 C 扩展就像 Python 本身一样容易。Cython 基于著名的 Pyrex,但支持更尖端的功能和优化。

Cython 语言非常接近 Python 语言,但 Cython 还支持调用 C 函数以及在变量和类属性上声明 C 类型。这允许编译器从 Cython 代码生成非常高效的 C 代码。

这使得 Cython 成为包装外部 C 库以及加快 Python 代码执行速度的快速 C 模块的理想语言。

于 2008-10-17T07:19:59.107 回答
1

我认为您可以使用 jython 将 python 编译为 Java 字节码,然后使用 GCJ 进行编译。

于 2008-10-16T15:56:03.073 回答