Python 可在多个平台上运行,可用于桌面和 Web 应用程序,因此我得出的结论是,有某种方法可以将其编译为适用于 Mac、Windows 和 Linux 的可执行文件。

问题是我不知道从哪里开始或如何用它编写 GUI,任何人都可以阐明这一点并为我指出正确的方向吗?

有帮助吗?

解决方案

首先,您需要一些带有 Python 绑定的 GUI 库,然后(如果您愿意)需要一些程序,将您的 python 脚本转换为独立的可执行文件。

具有 Python 绑定的跨平台 GUI 库(Windows、Linux、Mac)

当然,有很多,但我在野外见过的最受欢迎的是:

完整列表位于 http://wiki.python.org/moin/GuiProgramming

单个可执行文件(所有平台)

单个可执行文件 (Windows)

  • py2exe - 曾经是最受欢迎的

单个可执行文件 (Linux)

  • 冻结 - 工作方式与 py2exe 相同,但针对 Linux 平台

单个可执行文件 (Mac)

其他提示

另一个系统(在接受的答案中尚未提及)是 PyInstaller,它适用于我的 PyQt 项目,而 py2exe 则不起作用。我发现它更容易使用。

http://www.pyinstaller.org/

Pyinstaller 基于 Gordon McMillan 的 Python 安装程序。哪个不再可用。

py2exe 的替代工具是 BB冻结 它生成 Windows 和 Linux 的可执行文件。它比 py2exe 新,并且可以很好地处理鸡蛋。我发现它神奇地可以更好地工作,无需针对各种应用程序进行配置。

还有 PyGTK, ,它基本上是 Gnome 工具包的 Python 包装器。我发现它比 Tkinter 更容易理解,因为我之前对 GUI 编程几乎一无所知。它工作得很好并且有一些很好的教程。不幸的是,目前还没有适用于 Windows 的 Python 2.6 安装程序,并且可能暂时不会有。

由于现在几乎所有非 Windows 操作系统上都默认安装了 python,因此您真正需要确保的唯一一件事是安装了您使用的所有非标准库。

话虽如此,可以构建包含 python 解释器以及您使用的任何库的可执行文件。然而,这可能会创建一个大型可执行文件。

MacOS X 甚至在 Xcode IDE 中支持创建完整的独立 GUI 应用程序。这些可以由任何运行 OS X 的用户运行。

对于 GUI 本身:

皮QT 差不多就是参考了。

开发快速用户界面的另一种方法是编写Web应用程序,在本地运行并在浏览器中显示该应用程序。

另外,如果您选择Lubos Hasko建议的TKINTER选项,则可能需要尝试PortablePy以在没有Python的Windows环境上运行您的应用程序。

我不确定这是最好的方法,但是当我在 Windows 上部署 Ruby GUI 应用程序(不是 Python,但就 .exe 而言具有相同的“问题”)时,我只需编写一个C# 中的简短启动器调用我的主脚本。它编译为可执行文件,然后我就有了一个应用程序可执行文件。

# I'd use tkinter for python 3

import tkinter

tk = tkinter.Tk()
tk.geometry("400x300+500+300")
l = Label(tk,text="")
l.pack()
e = Entry(tk)
e.pack()

def click():
    e['text'] = 'You clicked the button'

b = Button(tk,text="Click me",command=click)
b.pack()

tk.mainloop()

# After this I would you py2exe
# search for the use of this module on stakoverflow
# otherwise I could edit this to let you know how to do it

py2exe

那么你应该使用 py2exe,例如,将运行应用程序所需的所有文件引入一个文件夹,即使用户的电脑上没有 python(我说的是 Windows...我认为,对于苹果操作系统来说,不需要可执行文件,因为它附带了 python,无需安装它。

创建这个文件

1)创建setup.py

用这个代码:

from distutils.core import setup
import py2exe

setup(console=['l4h.py'])

将其保存在文件夹中

2)将您的程序放入相同的设置文件夹中。Py放入此文件夹中,您要使该程序可分配的程序:es:l4h.py

附:更改文件名(从 l4h 更改为您想要的任何名称,这就是一个示例)

3)从该文件夹运行cmd(在该文件夹上,右键单击+shift并选择在此处启动cmd)
4)在cmd中写入:>python setup.py py2exe
5)在dist文件夹中有你需要的所有文件
6)您可以将其压缩并分发

py安装程序

从cmd安装

**

pip 安装 pyinstaller

**

从文件所在的文件夹中的 cmd 运行它

**

pyinstaller 文件.py

**

PySimpleGUI 包装了 tkinter,并可在 Python 3 和 2.7 上运行。它还可以在 Qt、WxPython 和 Web 浏览器上运行,对所有平台使用相同的源代码。

您可以制作自定义 GUI,利用您在 tkinter 中找到的所有相同小部件(滑块、复选框、单选按钮等)。代码往往非常紧凑且可读。

#!/usr/bin/env python
import sys
if sys.version_info[0] >= 3:
    import PySimpleGUI as sg
else:
    import PySimpleGUI27 as sg

layout = [[ sg.Text('My Window') ],
          [ sg.Button('OK')]]

window = sg.Window('My window').Layout(layout)
button, value = window.Read()

Image created from posted PySimpleGUI code

正如中所解释的 PySimpleGUI 文档, , 到 构建 .EXE 文件 你跑:

pyinstaller -wF MyGUIProgram.py

你不需要 编译 适用于 Mac/Windows/Linux 的 python。它是一种解释性语言,因此您只需在您选择的系统上安装 Python 解释器即可(它适用于所有三个平台)。

对于跨平台工作的 GUI 库,Python 的 Tk/Tcl 小部件库工作得很好,而且我相信它足够跨平台。

特金特 是 Tk/Tcl 的 python 接口

来自Python项目网页:

Tkinter并不是Python的唯一盖伊构图工具包。但是,它是最常用的一个,几乎是Unix,Mac和Windows之间唯一可移植的一个

您可以使用 appJar 用于基本 GUI 开发。

from appJar import gui

num=1

def myfcn(btnName):   
    global num
    num +=1
    win.setLabel("mylabel", num)

win = gui('Test')

win.addButtons(["Set"],  [myfcn])
win.addLabel("mylabel", "Press the Button")

win.go()

GUI when running

请参阅文档: 应用程序Jar站点.

安装是用 pip install appjar 从命令行。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top