将.py扩展名转换为可执行文件

时间:2012-11-21 15:47:50

标签: python

假设我有一个计算器应用程序的main.py.我使用不同的.py文件来实现不同的功能,例如(add.py用于添加,mul.py用于乘法),所有这些文件都在main.py中导入。当我点击main.py它成功执行并完成所有功能,如添加,mul等。我想做的是为main.py创建一个可执行文件,以便我可以在没有安装python的计算机上运行它或任何该模块(add.py,..)存在于硬盘驱动器中。那可能吗?? 感谢帮助

最后我得到了解决方案。 PyInstaller在我的情况下运行良好,也很容易使用。谢谢您的帮助。 (:

4 个答案:

答案 0 :(得分:2)

我没有Python的经验,但有一个简单的谷歌搜索提出了py2exe

至于OS独立,这是不可能的,这是解释器的重点。代码在任何地方都可以写入,但是一旦编译完成,就必须为特定平台编译它

答案 1 :(得分:1)

不可能在任何操作系统上运行独立的可执行文件,这就是Python是一种解释语言的原因。你可以做的是使用pyinstaller将Python脚本编译成你希望它运行的每个操作系统上的可执行文件,这样你就可以在同一个Python脚本上构建一堆不同操作系统的独立程序。

Pyinstaller优于py2exe,因为它更容易将所有脚本编译到一个文件中,而不是一个目录。

答案 2 :(得分:1)

没有嵌入代码和Python可执行文件(比如py2exe),还有其他一些可能的选项(虽然我没有尝试过任何选项)。

  • 使用Cython编写它并使用编译器为所有目标平台生成可执行文件
  • Jython编写并生成.class文件并在JVM上运行
  • 使用IronPython编写并使其在.NET / Mono上运行

答案 3 :(得分:0)

与之前提到的其他人一样,不可能为多个操作系统创建一个可执行文件。如果您的问题是我如何理解它,尝试捆绑主.py文件中使用的几个.py文件,那么是的,这可以通过py2exe实现。您需要使用以下内容创建setup.py文件:

from distutils.core import setup
import py2exe, sys, os

includes = ['add.py', 'mult.py', 'div.py', 'subt.py']
dll_excludes = ['mswsock.dll', 'powrprof.dll',]

setup(
        console=[{
                'script': 'math.py',
                'name': 'Calculator',
                'version': '1.0',
                'description': 'Basic calculator',
                'author': 'Firstname Lastname'
        }],
        options={
                'py2exe': {
                        'includes': includes,
                        'dll_excludes': dll_excludes,
                        'bundle_files': 1,  # 1 = .exe; 2 = .zip; 3 = separate
                }
        },
        zipfile=None,  # Put libs into .exe to save space.
)

将其保存为setup.py后,您可以通过运行setup.py文件来创建.exe。