Python可以在多个平台上运行,可以用于桌面和Web应用程序,因此我得出结论,有一些方法可以将它编译成Mac,Windows和Linux的可执行文件。
问题在于我不知道从哪里开始或者如何用它来编写GUI,任何人都可以对此有所了解并指出我正确的方向吗?
答案 0 :(得分:258)
首先,您需要一些带有Python绑定的GUI库,然后(如果需要)一些程序将您的python脚本转换为独立的可执行文件。
使用Python绑定的跨平台GUI库(Windows,Linux,Mac)
当然,有很多,但我在野外看到的最受欢迎的是:
完整列表位于http://wiki.python.org/moin/GuiProgramming
单个可执行文件(所有平台)
单个可执行文件(Windows)
单个可执行文件(Linux)
单个可执行文件(Mac)
答案 1 :(得分:54)
另一个系统(在接受的答案中没有提到)是PyInstaller,当py2exe没有时,它为我的PyQt项目工作。我发现它更容易使用。
Pyinstaller基于Gordon McMillan的Python安装程序。哪个不再可用。
答案 2 :(得分:14)
py2exe的另一个工具是bbfreeze,它为windows和linux生成可执行文件。它比py2exe更新,可以很好地处理鸡蛋。我发现如果没有配置用于各种各样的应用程序,它会神奇地工作。
答案 3 :(得分:11)
还有PyGTK,它基本上是Gnome Toolkit的Python包装器。我发现比Tkinter更容易包围我,因为之前几乎不了解GUI编程。它工作得很好,并有一些很好的教程。不幸的是,还没有适用于Windows的Python 2.6的安装程序,可能暂时不会。
答案 4 :(得分:6)
由于现在默认情况下几乎每个非Windows操作系统上都安装了python,因此您唯一需要确保安装的是所有非标准库。
话虽如此,可以构建包含python解释器的可执行文件,以及您使用的任何库。但是,这可能会创建一个大型可执行文件。
MacOS X甚至包括在Xcode IDE中支持创建完整的独立GUI应用程序。这些可以由运行OS X的任何用户运行。
答案 5 :(得分:5)
对于GUI本身:
PyQT几乎是参考。
开发快速用户界面的另一种方法是编写Web应用程序, 让它在本地运行并在浏览器中显示应用程序。
另外,如果你选择lubos hasko建议的Tkinter选项 您可能想尝试使用portablepy让您的应用在Windows环境中运行 没有Python。
答案 6 :(得分:4)
我不确定这是最好的方法,但是当我在Windows上部署Ruby GUI应用程序(不是Python,但就.exe而言有相同的“问题”)时,我只需在C#中编写一个调用我的主脚本的简短启动器。它编译成可执行文件,然后我有一个应用程序可执行文件。
答案 7 :(得分:2)
# 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来引入一个文件夹运行应用程序所需的所有文件,即使用户在他的电脑上没有python(我说的是windows ...对于苹果os那里我认为不需要可执行文件,因为它不需要安装它就可以使用python。
使用此代码:
from distutils.core import setup
import py2exe
setup(console=['l4h.py'])
2)将您的程序放在setup.py的同一文件夹中 在此文件夹中放入您想要使其可分发的程序: es:l4h.py
3)从该文件夹运行cmd(在文件夹上,右键单击+ shift并在此处选择start cmd)
4)写入cmd:> python setup.py py2exe
5)在dist文件夹中有你需要的所有文件
6)你可以拉链并分发它
**
pip install pyinstaller
**
**
pyinstaller file.py
**
答案 8 :(得分:2)
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()
如PySimpleGUI Documentation中所述,您要运行到build the .EXE file:
pyinstaller -wF MyGUIProgram.py
答案 9 :(得分:1)
您不需要为Mac / Windows / Linux 编译 python。它是一种解释型语言,因此您只需要在您选择的系统上安装Python解释器(它可用于所有三个平台)。
对于跨平台工作的GUI库,Python的Tk/Tcl小部件库运行良好,我相信它是足够的跨平台。
Tkinter是Tk / Tcl的python接口
来自python项目网页:
Tkinter并不是唯一的GuiProgramming Python工具包。然而,它是 最常用的一个,几乎是 只有一个便于携带 Unix,Mac和Windows
答案 10 :(得分:0)
您可以使用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()
请参阅appJar site上的文档。
使用命令行中的pip install appjar
进行安装。
答案 11 :(得分:0)
!!! KIVY !!!
我惊讶地发现没有人提到Kivy !!!
我曾经使用Tkinter进行过一个项目,尽管他们确实提倡它有很多改进,但它仍然给我Windows 98的感觉,所以我切换到Kivy。
如果有帮助,我一直在关注tutorial series ...
只是想了解一下奇异果的外观,请看以下内容(我正在研究的项目):
现在我已经从事了不到一个星期的工作! 您问Kivy有什么好处?选中this
之所以选择它,是因为它的外观以及它也可以在移动设备中使用。
答案 12 :(得分:0)
您可以做三件事:
首先要找到一个 GUI 设计器,它可以将其代码作为独立应用程序(如 .exe 文件)启动。我使用一个版本的 MatDeck(对于使用 GUI 设计器的人,我推荐 MD Python Designer),因为我相信(我使用另一个版本,所以我不太确定。)它允许我将代码转换为独立的应用程序,并通过有了它,就无需在每台要运行该程序的 PC 上安装该软件。
第二个选项是部分绕过问题,将 GUI 作为网页启动。这将为您提供最大的兼容性,因为大多数(如果不是所有)操作系统都可以使用它。再一次,你需要一个可以将其组件转换为 Web 兼容格式的 GUI 设计器,我已经做过一次并且我使用了相同版本的 MatDeck(Visionary Deck),我不推荐 MD Python Designer 这个时间,因为我不知道它是否可以使用 Web 程序集将其 GUI 转换为网站,而我已经尝试和测试了 Visionary Deck。与所有其他软件一样,很可能还有其他软件,这只是我经常使用的软件,因为我经常使用数学和物理。
第三个选项也可以绕过这个问题,但在 Tkinter 中进行,只需确保您有一个 Python IDE 或只是普通的旧 Python 并运行代码,这将启动 GUI。这是一个很好的解决方案,也许是最简单的,但我不会将其归类为最短或最好的。如果您只打算在少数操作系统和计算机之间切换,这可能是您的最佳选择。