从Python脚本创建可执行文件

From:https://mborgerson.com/creating-an-executable-from-a-python-script/

Python是我最喜欢的编程语言之一。话虽这么说,如果你曾经不得不部署一个用Python编写的应用程序,那么你就知道它有多痛苦。

幸运的是,有一些非常棒的开源工具可用于将Python程序打包成独立的二进制可执行文件,其中包含运行应用程序所需的一切(即Python解释器,程序代码,库,数据等)。

在本文中,我将向您展示如何在Windows上使用PyInstaller创建图形化“Hello World”应用程序的二进制可执行版本。

根据PyInstaller网站说法,PyInstaller支持所有主要的操作系统,所以如果你的目标是OS X或GNU / Linux系统上的二进制发行版,那么这些平台上的过程可能会类似。

第一件事

当然,请确保已安装Python 2.7.x.(版本按需)

本文中的演示应用程序使用wxPython库,因此如果您打算继续使用,则需要安装它,但不必使用PyInstaller。

您还需要安装PyInstaller,但我会在一秒钟内完成。

该应用程序

这个应用程序将是一个简单的“Hello World”图形应用程序。下面保存源代码app.py

app.py

```

!/ usr / bin / env python

import wx app = wx.App(False)frame = wx.Frame(None,wx.ID_ANY,“Hello World”)frame.Show(True)app.MainLoop()```

注意:上面显示的源代码来自wxPython 入门指南,如果您想创建图形Python应用程序,您可能会对此感兴趣。

现在,启动您的控制台并像往常一样运行应用程序。

python app.py

出现一个窗口,如下所示。

这不是很令人兴奋,但这只是一个演示。

安装PyInstaller

注意:在Windows上安装PyInstaller之前,您需要安装PyWin32。您不需要为GNU / Linux或Mac OS X系统执行此操作。

可以使用Python包管理器Pip安装PyInstaller

pip install pyinstaller

构建可执行文件

现在,构建可执行文件。

pyinstaller.exe --onefile --windowed app.py

就这么简单。

如果构建成功,最终的可执行文件app.exe和任何相关文件将放在dist目录中,如果该目录不存在,将创建该目录。

让我简要介绍一下正在使用的选项:

  • --onefile用于将所有内容打包到单个可执行文件中。如果未指定此选项,则库等将作为单独的文件与主可执行文件一起分发。
  • --windowed防止在运行应用程序时显示控制台窗口。如果您要发布非图形应用程序(即控制台应用程序),则无需使用此选项。
  • app.py应用程序的主要源文件。此脚本的基本名称将用于可执行文件的名称,但您可以使用该--name选项指定备用可执行文件名。

有关更多配置信息,请参阅PyInstaller手册

您无需在命令中指定其他模块,因为它们将通过import语句自动提取。

注意:在我的系统上,最终的可执行文件是一个相当大的8.4 MiB。可执行文件相对较大,因为Python解释器,应用程序代码和所有必需的库都打包在(由--onefile选项指定)。虽然方便,但在使用此方法发布之前,您应该注意这种方法的一些含义。有关捆绑的更多信息,请参阅PyInstaller手册

构建之后,将创建一个app.spec文件。此文件包含用于运行PyInstaller的所有选项,如果需要,可以反馈到PyInstaller以供将来构建以代替命令行选项。

添加图标

IconEden提供了一些不错的免版税图标,因此我将使用他们的一个用于此演示。将.ico文件保存在源目录中,并--icon=app.ico在运行PyInstaller时添加该选项。例如:

pyinstaller.exe --onefile --windowed --icon=app.ico app.py

这是添加到应用程序并通过Windows资源管理器查看时图标的示例:

添加版本信息

PyInstaller使用以下文件(取自PyInstaller测试套件)将版本信息添加到可执行文件中。将此文件另存为version.txt

version.txt

发布了83 篇原创文章 · 获赞 81 · 访问量 39万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览