Python可以在多个平台上工作,可以用于桌面和web应用程序,因此我得出结论,有某种方法可以将它编译成Mac、Windows和Linux的可执行文件。
问题是我不知道从哪里开始或如何写一个GUI与它,谁能在这一点上提供一些光,并指出我在正确的方向请?
Python可以在多个平台上工作,可以用于桌面和web应用程序,因此我得出结论,有某种方法可以将它编译成Mac、Windows和Linux的可执行文件。
问题是我不知道从哪里开始或如何写一个GUI与它,谁能在这一点上提供一些光,并指出我在正确的方向请?
当前回答
PySimpleGUI包装了tkinter,适用于Python 3和2.7。它还可以在Qt、WxPython和web浏览器上运行,在所有平台上使用相同的源代码。
您可以使用在tkinter中找到的所有相同的小部件(滑块、复选框、单选按钮……)来创建自定义gui。代码往往非常紧凑且可读。
#!/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文档中所解释的,要构建运行的.EXE文件:
pyinstaller -wF MyGUIProgram.py
其他回答
还有PyGTK,它基本上是Gnome Toolkit的Python包装器。我发现它比Tkinter更容易理解,因为我以前对GUI编程几乎一无所知。它工作得很好,有一些很好的教程。不幸的是,目前还没有用于Windows的Python 2.6的安装程序,而且可能暂时还没有。
PySimpleGUI包装了tkinter,适用于Python 3和2.7。它还可以在Qt、WxPython和web浏览器上运行,在所有平台上使用相同的源代码。
您可以使用在tkinter中找到的所有相同的小部件(滑块、复选框、单选按钮……)来创建自定义gui。代码往往非常紧凑且可读。
#!/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文档中所解释的,要构建运行的.EXE文件:
pyinstaller -wF MyGUIProgram.py
我不确定这是否是最好的方法,但当我在Windows上部署Ruby GUI应用程序(不是Python,但就.exe而言有相同的“问题”)时,我只是用c#编写了一个简短的启动程序,调用我的主脚本。它编译成一个可执行文件,然后我就有了一个可执行的应用程序。
另一个系统(在接受的答案中还没有提到)是PyInstaller,它适用于我的一个PyQt项目,而py2exe不能。我发现它更容易使用。
http://www.pyinstaller.org/
Pyinstaller基于Gordon McMillan的Python Installer。现在已经没有了。
首先,你需要一些带有Python绑定的GUI库,然后(如果你想要的话)一些将你的Python脚本转换为独立可执行文件的程序。
带有Python绑定的跨平台GUI库(Windows, Linux, Mac)
当然,有很多,但我在野外看到的最受欢迎的是:
Tkinter——基于Tk GUI工具包(实际上是python的标准GUI库,商业项目免费) WxPython——基于WxWidgets(流行,免费用于商业项目) Qt使用PyQt绑定或Qt for Python。前者对于商业项目来说不是免费的。后者不太成熟,但可以免费使用。
完整的列表在http://wiki.python.org/moin/GuiProgramming
单个可执行文件(所有平台)
PyInstaller -最活跃的(也可以用于PyQt) fbs -如果你选择Qt以上
单个可执行文件(Windows)
Py2exe -曾经是最流行的
单个可执行文件(Linux)
冻结-工作方式与py2exe相同,但目标是Linux平台
单个可执行文件(Mac)
py2app -同样,工作方式类似于py2exe,但目标是Mac OS