Python编译成独立可执行应用程序?
我写了一个小程序,用的是Python。其实这不算真正的程序 :p。
它就是这个:
print(1+1)
当我保存的时候,它被保存成了py1.py(一个Python文件)。显然,Python文件是可以执行的,而且执行得很好。
有没有办法把它编译成字节码呢?还有,能不能把它做成一个独立的应用程序?
我可能用的术语不太对,我更熟悉Java。对Python还不太了解。
谢谢!
1 个回答
首先,正如@emh提到的,这个问题和其他几个问题是重复的。其中一个可以参考的是 stackoverflow.com/questions/2933/an-executable-python-app。
有几种脚本和模块可以把一个 .py
文件转换成独立的可执行文件。比较常用的有 py2exe、py2app、Pyinstaller 和 Cx_freeze。选择哪个工具最好,取决于你怎么使用它。首先,这取决于你使用的操作系统。py2exe 专门用来创建 .exe
文件,也就是 Windows 的可执行文件;而 py2app 则是为 Mac OS 创建 .app
文件,功能和 py2exe 类似。Pyinstaller 和 cx_freeze 可以为多个系统创建可执行文件,包括 Windows、Mac OS 和 Linux。接下来,你选择的工具还要看你使用的 Python 版本。提到的工具中,只有 Cx_Freeze 支持 Python 3.X,其他的都只支持 Python 2.X。Pyinstaller 的一个优点是,它会把所有需要的文件打包成一个可执行文件,在执行前会解压,而其他工具则会创建一个包含很多依赖文件的文件夹,里面有可执行文件。
我使用 Cx_freeze,因为它支持 Python 3.X,构建过程也相对简单。
至于把文件转换成字节码,有几个 Python 模块可以做到这一点。其中一个是 py_compile
。使用示例:
import py_compile
py_compile.compile('filepathandname')
这段代码会生成一个 .pyc
文件,Python 会把它放在和原文件同一目录下的一个名为 __pycache__
的文件夹里。
希望这些信息对你有帮助。