Как создать прямо исполняемый кросс-платформенный графический интерфейс с помощью Python?
Python работает на нескольких платформах и может использоваться для настольных и веб-приложений, поэтому я пришел к выводу, что есть способ скомпилировать его в исполняемый файл для Mac, Windows и Linux.
Проблема в том, что я понятия не имею, с чего начать или как писать графический интерфейс с ней, может кто-нибудь пролить свет на это и указать мне в правильном направлении?
Ответы
Ответ 1
Сначала вам понадобится библиотека GUI с привязками Python, а затем (если хотите) какую-нибудь программу, которая преобразует ваши скрипты python в автономные исполняемые файлы.
Кросс-платформенные библиотеки GUI с привязками Python (Windows, Linux, Mac)
Конечно, есть много, но самые популярные, что я видел в дикой природе:
- Tkinter - основанный на Tk GUI инструментарий (де-факто стандартная библиотека GUI для python, бесплатная для коммерческих проектов)
- WxPython - основанный на WxWidgets (популярный, бесплатный для коммерческих проектов)
- Qt, используя привязки PyQt или Qt для Python. Первый не является бесплатным для коммерческих проектов. Последний менее зрелый, но его можно использовать бесплатно.
Полный список доступен по адресу http://wiki.python.org/moin/GuiProgramming
Один исполняемый файл (все платформы)
Один исполняемый файл (Windows)
Одиночный исполняемый файл (Linux)
- Freeze - работает так же, как py2exe, но ориентируется на платформу Linux
Одиночный исполняемый файл (Mac)
- py2app - снова работает как py2exe, но нацелен на Mac OS
Ответ 2
Другая система (еще не упомянутая в принятом ответе) - это PyInstaller, который работал для моего проекта PyQt, когда py2exe не будет. Мне было проще использовать его.
http://www.pyinstaller.org/
Pyinstaller основан на установщике Python Gordon McMillan. Который больше не доступен.
Ответ 3
Альтернативным инструментом для py2exe является bbfreeze, который генерирует исполняемые файлы для окон и linux. Это новее, чем py2exe, и хорошо обрабатывает яйца. Я нашел, что это волшебство работает лучше без конфигурации для самых разных приложений.
Ответ 4
Там также PyGTK, который в основном представляет собой оболочку Python для инструментария Gnome. Мне было легче обойти вокруг себя, чем Tkinter, из-за отсутствия знаний о графическом интерфейсе ранее. Он работает очень хорошо и имеет хорошие учебные пособия. К сожалению, для Python 2.6 для Windows пока нет инсталлятора, и, возможно, это не так долго.
Ответ 5
Так как python установлен практически для всех не-ОС Windows по умолчанию, единственное, что вам действительно нужно сделать, это установить все используемые вами нестандартные библиотеки.
Сказав это, можно создать исполняемые файлы, включающие интерпретатор python, и любые библиотеки, которые вы используете. Однако это может создать большой исполняемый файл.
MacOS X даже включает поддержку в Xcode IDE для создания полных автономных графических приложений. Они могут запускаться любым пользователем, работающим под управлением ОС X.
Ответ 6
Я не уверен, что это лучший способ сделать это, но когда я развертываю приложения Ruby GUI (а не Python, но имеет ту же "проблему", что и в .exe) в Windows, я просто напишите короткий запуск в С#, который вызывает мой основной script. Он компилируется в исполняемый файл, а затем я имею исполняемый файл приложения.
Ответ 7
Для самого GUI:
PyQT в значительной степени является ссылкой.
Еще один способ разработки быстрого пользовательского интерфейса - написать веб-приложение,
запустить его локально и отобразить приложение в браузере.
Плюс, если вы идете на вариант Tkinter, предложенный lubos hasko
вы можете попробовать переносить приложение для работы в среде Windows
без Python.
Ответ 8
# 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... для Apple os нет необходимости из исполняемого файла, я думаю, поскольку он поставляется с python в нем без какой-либо необходимости его установки.
Создать этот файл
1) Создайте setup.py
с этим кодом:
from distutils.core import setup
import py2exe
setup(console=['l4h.py'])
сохранить его в папке
2) Поместите свою программу в ту же папку setup.py, поместите в эту папку программу, которую вы хотите сделать ее распределенной: es: l4h.py
ps: измените имя файла (с l4h на все, что вы хотите, это пример)
3) Запустите cmd из этой папки (в папке, щелкните правой кнопкой мыши + shift и выберите start cmd здесь)
4) напишите в cmd:> python setup.py py2exe
5) в папке dist находятся все файлы, которые вам нужны
6) вы можете закрепить его и распространить
Pyinstaller
Установите его из cmd
**
pip install pyinstaller
**
Запустите его из cmd из папки, в которой находится файл.
**
pyinstaller file.py
**
Ответ 9
Вам не нужно компилировать python для Mac/Windows/Linux. Это интерпретируемый язык, поэтому вам просто нужно, чтобы интерпретатор Python был установлен в выбранной вами системе (он доступен для всех трех платформ).
Что касается библиотеки GUI, которая работает с кросс-платформой, библиотека виджета Python Tk/Tcl работает очень хорошо, и я считаю, что это достаточно перекрестная платформа.
Tkinter - это интерфейс python для Tk/Tcl
На веб-странице проекта python:
Tkinter - не единственный GuiProgramming инструментарий для Python. Однако наиболее часто используемый, и почти только один, который переносится между Unix, Mac и Windows
Ответ 10
Вы можете использовать appJar
для разработки основного графического интерфейса.
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 при запуске]()
См. документацию на сайт appJar.
Установка выполняется с помощью pip install appjar
из командной строки.
Ответ 11
PySimpleGUI обертывает tkinter и работает на Python 3 и 2.7. Вы можете создавать пользовательские графические интерфейсы, которые используют все те же виджеты, которые вы найдете в 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