如何将Python文件转换为可执行文件?快速实现教程

2021年11月16日18:10:32 发表评论 941 次浏览

本文使用 PyInstaller 包将 Python 应用程序及其所有依赖项捆绑到一个独立的可执行文件中,包括Python文件转为可执行文件示例

你是否曾经想将 Python 应用程序快速构建到单个 Windows .exe文件中?或者你想将大型 Python 项目捆绑到单个可执行包中?如何将Python文件转换为可执行文件?在本教程中,你将学习如何使用PyInstaller包来做到这一点。

Python如何转为可执行文件?PyInstaller 将 Python 应用程序冻结为 Windows、GNU/Linux、Mac OS X、FreeBSD、Solaris 和 AIX 下的独立可执行文件。用户无需安装 Python 解释器或任何模块即可运行和执行生成的打包应用程序。它支持 Python 2.7 和 Python 3.4+,并成功捆绑了主要和著名的 Python 包,如numpy、PyQT、Django等。

PyInstaller 不是交叉编译器,这意味着如果你想制作一个 Windows 可执行文件(.exe),你需要在 Windows 上运行 Pyinstaller,如果你想要一个 GNU/Linux 应用程序,你也这样做,等等。

Pyinstaller 分析你的代码以发现你的脚本为了执行而使用的所有其他模块和库,然后它收集所有这些文件的副本并将它们与你的脚本放在一个文件夹(或单个可执行文件)中。

 请阅读:如何在 Python 中制作进程监视器。

如何将Python文件转换为可执行文件?安装pyinstaller非常简单:

pip3 install pyinstaller

首先,我将使用编写键盘记录器教程的示例 Python 文件,向你展示如何准确使用 Pyinstaller。

因此,要运行它,你需要在要构建的 Python 文件的同一目录中并编写以下内容:

pyinstaller keylogger.py

Python文件转为可执行文件示例 - 这将在几秒钟内构建keylogger.py文件,这是我生成的文件夹:

如何将Python文件转换为可执行文件?快速实现教程

如你所见,出现了两个新文件夹(“build”和“dist”),你会在build文件夹中找到大部分元数据和日志文件。于是,我们对dist文件夹更感兴趣了,打开之后,你会看到这样的:

如何将Python文件转换为可执行文件?快速实现教程
Python文件转为可执行文件示例

如何将Python文件转换为可执行文件?这将所有必需的依赖项打包到一个文件夹中,为了在任何 Windows 机器上执行它(因为我在 Windows 上构建它),你需要移动整个文件夹并右键单击keylogger.exe。

如果你构建非 GUI 应用程序,例如此示例,你会注意到,一旦你执行该文件,就会出现一个标准I/O控制台窗口,你可以使用--noconsole、--windowed或-w参数禁用它.

Python如何转为可执行文件?如果你想将所有内容捆绑在单个可执行文件上,你也可以通过--onefile或-F参数来创建一个文件捆绑可执行文件。

让我们把这两者结合起来看看:

pyinstaller --noconsole --onefile keylogger.py

Python文件转为可执行文件示例:这将构建一个不显示任何控制台窗口的可执行文件:

如何将Python文件转换为可执行文件?快速实现教程

一个5.5MB 的单个可执行.exe文件,文件大小将根据构建此应用程序所需的依赖项而有所不同。当我执行这个时,什么都没有发生,一个隐蔽的应用程序,我只能在任务管理器中监控它:

如何将Python文件转换为可执行文件?快速实现教程你还可以使用-i或--icon参数更改可执行文件的图标,该参数需要.ico、.exe或.icns文件,将其图标应用于生成的 Windows 或 Mac OS X 可执行文件。

如何将Python文件转换为可执行文件?此外,你可以使用某些 Windows 特定选项,例如-m或--manifest,它们接受描述 Windows 软件应用程序包内容的MANIFEST文件

好吧,我们在这个教程中,没有做SE --help参数,看看其他各种参数,我们没有讨论和他们的解释,或者你可以检查PyInstaller的官方文档更详细的信息。

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: