Как я могу создать непосредственно исполняемое кроссплатформенное приложение с графическим интерфейсом на Python?
142584 просмотра
11 ответа
Python работает на нескольких платформах и может использоваться для настольных и веб-приложений, поэтому я пришел к выводу, что есть некоторый способ скомпилировать его в исполняемый файл для Mac, Windows и Linux.
Проблема в том, что я понятия не имею, с чего начать или как написать GUI, кто-нибудь может пролить свет на это и указать мне правильное направление, пожалуйста?
Автор: Teifion Источник Размещён: 17.05.2019 02:36Ответы (11)
251 плюса
Сначала вам понадобится некоторая библиотека 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
Единый исполняемый файл (все платформы)
- PyInstaller - самый активный
- fbs - если вы выбрали Qt выше
Единственный исполняемый файл (Windows)
- py2exe - раньше был самым популярным
Единственный исполняемый файл (Linux)
- Freeze - работает так же, как py2exe, но ориентирован на платформу Linux
Один исполняемый файл (Mac)
- py2app - опять же, работает как py2exe, но ориентирован на Mac OS
52 плюса
Другая система (еще не упомянутая в принятом ответе) - это PyInstaller, которая работала для моего проекта PyQt, когда py2exe не работал. Мне было проще в использовании.
Pyinstaller основан на установщике Python Гордона Макмиллана. Который больше не доступен.
Автор: Jamie Размещён: 28.08.2008 08:4114 плюса
Альтернативным инструментом для py2exe является bbfreeze, который генерирует исполняемые файлы для Windows и Linux. Это новее, чем py2exe и обрабатывает яйца довольно хорошо. Я обнаружил, что он волшебно работает лучше без конфигурации для широкого спектра приложений.
Автор: Michael Twomey Размещён: 15.08.2008 11:5611 плюса
Есть также PyGTK , который в основном является оболочкой Python для Gnome Toolkit. Я обнаружил, что мне легче сосредоточиться на этом, чем на Tkinter, поскольку я почти ничего не знал о программировании GUI ранее. Он работает довольно хорошо и имеет несколько хороших уроков. К сожалению, пока нет установщика для Python 2.6 для Windows, и, возможно, пока не будет.
Автор: Tofystedeth Размещён: 05.11.2008 03:536 плюса
Поскольку python теперь установлен практически по умолчанию во всех ОС, отличных от Windows, единственное, что вам действительно нужно, это убедиться, что установлены все нестандартные библиотеки, которые вы используете.
Сказав это, можно создавать исполняемые файлы, которые включают интерпретатор Python и любые библиотеки, которые вы используете. Однако это может создать большой исполняемый файл.
MacOS X даже включает поддержку в Xcode IDE для создания полностью автономных приложений с графическим интерфейсом. Они могут быть запущены любым пользователем под управлением OS X.
Автор: Matthew Schinckel Размещён: 06.08.2008 12:295 плюса
Для самого GUI:
PyQT в значительной степени ссылка.
Другой способ разработки быстрого пользовательского интерфейса - написать веб-приложение, запустить его локально и отобразить приложение в браузере.
Кроме того, если вы выберете вариант Tkinter, предложенный lubos hasko, вы можете попробовать portablepy, чтобы ваше приложение работало в среде Windows без Python.
Автор: fulmicoton Размещён: 19.08.2008 09:454 плюса
Я не уверен, что это лучший способ сделать это, но когда я развертываю приложения Ruby с графическим интерфейсом (не Python, но имеет ту же «проблему», что касается .exe) в Windows, я просто пишу короткий лаунчер в C #, который вызывает мой основной скрипт. Он компилируется в исполняемый файл, а затем у меня есть исполняемый файл приложения.
Автор: Brian Warshaw Размещён: 15.08.2008 12:002 плюса
# 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
**
Автор: Giovanni Gianni Размещён: 31.01.2017 07:512 плюса
PySimpleGUI оборачивает tkinter и работает на Python 3 и 2.7. Он также работает на Qt, WxPython и в веб-браузере, используя один и тот же исходный код для всех платформ.
Вы можете создавать пользовательские графические интерфейсы, которые используют все те же виджеты, которые вы найдете в 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 , для создания запускаемого файла .EXE :
Автор: MikeyB Размещён: 09.10.2018 12:30pyinstaller -wF MyGUIProgram.py
1 плюс
Вам не нужно компилировать python для Mac / Windows / Linux. Это интерпретируемый язык, поэтому вам просто нужно установить интерпретатор Python в выбранной вами системе (он доступен для всех трех платформ).
Что касается библиотеки с графическим интерфейсом, которая работает кроссплатформенно, библиотека виджетов Tk / Tcl в Python работает очень хорошо, и я считаю, что она достаточно кроссплатформенная.
Tkinter - это интерфейс Python для Tk / Tcl
С веб-страницы проекта Python:
Автор: Justin Standard Размещён: 05.08.2008 10:40Tkinter - не единственный инструментарий GuiProgramming для Python. Тем не менее, он является наиболее часто используемым и почти единственным, переносимым между Unix, Mac и Windows.
0 плюса
Вы можете использовать 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()
Смотрите документацию на сайте appJar .
Установка производится pip install appjar
из командной строки.
Вопросы из категории :
- python Обработка XML в Python
- python Как я могу использовать Python itertools.groupby ()?
- python Python: На какой ОС я работаю?
- python Как я могу создать непосредственно исполняемое кроссплатформенное приложение с графическим интерфейсом на Python?
- user-interface Что такое MVP и MVC и в чем разница?
- user-interface Прототипирование GUI с клиентом
- user-interface Как заставить кнопку выглядеть так, как будто она нажата?
- deployment Развертывание служб отчетов
- deployment Причины получения java.lang.VerifyError
- deployment Запретить доступ к папкам .svn на Apache
- tkinter Как закрыть окно tkinter?
- tkinter Как мне обработать событие закрытия окна в Tkinter?
- tkinter Как вы запускаете свой собственный код вместе с циклом событий Tkinter?
- release-management Лучшие практики для копирования файлов с Maven
- release-management Если dev-ops проведет тестирование дыма после развертывания
- release-management В TFS Release Management релиз застрял в процессе