酷徒LOGO

从 python 脚本创建可执行文件


python 是我最喜欢的编程语言之一。 也就是说,如果你曾经必须部署一个 python 编写的应用程序,那么你就知道它有多痛苦。

幸好,有一些非常出色的开源工具,可以用来将 python 程序打包成包含运行应用程序所需的所有内容的独立二进制可执行文件( 例如 ) 。 python 解释器,程序代码,库,数据,等等 ) 。

本文介绍如何使用 PyInstaller插件创建图形"Hello World"应用程序的二进制可执行版本。

根据网站,PyInstaller支持所有主要操作系统,所以如果在 OS X 或者 gnu/linux系统上定位二进制发行版,那么这个过程可能在这些平台上很相似。

首先也是最重要的

当然,请确保已经安装了 python 2.7. x 。

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

你也需要安装 PyInstaller,但我会在第二个时候到达。

应用

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

app.py

`` `

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

导入wx应用程序= wx.App(False) 框架= wx.Frame(None, wx.ID_ANY,"Hello World") frame.Show(True) app.MainLoop() ``

注意:如果你想创建图形化 python 应用程序,那么上面显示的源代码是从 wxPython 入门入门指南中获取的,你可能会感兴趣。

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

这并不令人兴奋不过这只是个演示。

正在安装 PyInstaller

注意:安装PyInstaller之前,你需要安装 PyWin32. 你不需要为 gnu/linux或者 Mac OS X 系统做这件事。

可以使用 Pip管理器,python 软件包管理器安装PyInstaller插件。

pip install pyinstaller

生成可执行文件

现在,构建可执行文件。

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

如果构建成功,最终可以执行文件 app.exe 和所有相关文件将放置在dist目录中,如果它不存在,将会创建。

如果构建成功,最终可以执行文件 app.exe 和所有相关文件将放置在英镑目录中,如果它不存在,将会创建。

让我简要描述正在使用的选项:

  • --onefile 用于将所有内容打包到一个可执行文件中。 如果不指定这里选项,则库将作为独立文件分发到主可执行文件旁边。
  • --windowed 防止在运行应用程序时显示控制台窗口。 如果你正在释放非图形应用程序( 例如 。 控制台应用程序),你无需使用这里选项。
  • app.py 应用程序的主源文件。 这里脚本的basename 将用于可以执行文件的NAME,但你可以使用 --name 选项指定可以执行的可以执行 NAME 。

请参阅 PyInstaller手册以获取更多配置信息。

在命令中不需要指定额外的模块,因为它们会通过 import 语句自动提取。

注意:我的系统上的最终可以执行文件是一个相当大的8.4 MiB 。 可执行文件比较大,因为 python 解释器。应用程序代码和所有需要的库都打包在( 按 --onefile 选项指定) 中。 尽管方便,但是在使用这里方法之前,你应该注意到一些问题。 请参阅 PyInstaller手册,了解有关捆绑包的更多信息。

构建后,将创建一个收费的文件。 这个文件包含用于运行PyInstaller的所有选项,并且可以在需要的时候回到PyInstaller中来代替 命令行 选项。

添加 icon

我提供了一些不错的免费图标,所以我将使用其中之一来演示这个演示。 在源目录中保存. ico 文件,并在运行PyInstaller时添加 --icon=app.ico 选项。 例如:

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

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

添加版本信息

PyInstaller用于将版本信息添加到可执行文件中的下列文件( 从 PyInstaller测试套件中获取。) 。 将这里文件保存为 version.txt

version.txt

`` `





Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备17041772号-2  |  如果智培  |  酷兔英语  |  帮酷