Вопрос:

Как я могу создать непосредственно исполняемое кроссплатформенное приложение с графическим интерфейсом на Python?

python user-interface deployment tkinter release-management

142584 просмотра

11 ответа

43604 Репутация автора

Python работает на нескольких платформах и может использоваться для настольных и веб-приложений, поэтому я пришел к выводу, что есть некоторый способ скомпилировать его в исполняемый файл для Mac, Windows и Linux.

Проблема в том, что я понятия не имею, с чего начать или как написать GUI, кто-нибудь может пролить свет на это и указать мне правильное направление, пожалуйста?

Автор: Teifion Источник Размещён: 05.08.2008 10:26

Ответы (11)


251 плюса

21180 Репутация автора

Решение

Сначала вам понадобится некоторая библиотека 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
Автор: lubos hasko Размещён: 05.08.2008 10:34

1 плюс

17115 Репутация автора

Вам не нужно компилировать python для Mac / Windows / Linux. Это интерпретируемый язык, поэтому вам просто нужно установить интерпретатор Python в выбранной вами системе (он доступен для всех трех платформ).

Что касается библиотеки с графическим интерфейсом, которая работает кроссплатформенно, библиотека виджетов Tk / Tcl в Python работает очень хорошо, и я считаю, что она достаточно кроссплатформенная.

Tkinter - это интерфейс Python для Tk / Tcl

С веб-страницы проекта Python:

Tkinter - не единственный инструментарий GuiProgramming для Python. Тем не менее, он является наиболее часто используемым и почти единственным, переносимым между Unix, Mac и Windows.

Автор: Justin Standard Размещён: 05.08.2008 10:40

6 плюса

27679 Репутация автора

Поскольку python теперь установлен практически по умолчанию во всех ОС, отличных от Windows, единственное, что вам действительно нужно, это убедиться, что установлены все нестандартные библиотеки, которые вы используете.

Сказав это, можно создавать исполняемые файлы, которые включают интерпретатор Python и любые библиотеки, которые вы используете. Однако это может создать большой исполняемый файл.

MacOS X даже включает поддержку в Xcode IDE для создания полностью автономных приложений с графическим интерфейсом. Они могут быть запущены любым пользователем под управлением OS X.

Автор: Matthew Schinckel Размещён: 06.08.2008 12:29

14 плюса

1444 Репутация автора

Альтернативным инструментом для py2exe является bbfreeze, который генерирует исполняемые файлы для Windows и Linux. Это новее, чем py2exe и обрабатывает яйца довольно хорошо. Я обнаружил, что он волшебно работает лучше без конфигурации для широкого спектра приложений.

Автор: Michael Twomey Размещён: 15.08.2008 11:56

4 плюса

14480 Репутация автора

Я не уверен, что это лучший способ сделать это, но когда я развертываю приложения Ruby с графическим интерфейсом (не Python, но имеет ту же «проблему», что касается .exe) в Windows, я просто пишу короткий лаунчер в C #, который вызывает мой основной скрипт. Он компилируется в исполняемый файл, а затем у меня есть исполняемый файл приложения.

Автор: Brian Warshaw Размещён: 15.08.2008 12:00

5 плюса

8921 Репутация автора

Для самого GUI:

PyQT в значительной степени ссылка.

Другой способ разработки быстрого пользовательского интерфейса - написать веб-приложение, запустить его локально и отобразить приложение в браузере.

Кроме того, если вы выберете вариант Tkinter, предложенный lubos hasko, вы можете попробовать portablepy, чтобы ваше приложение работало в среде Windows без Python.

Автор: fulmicoton Размещён: 19.08.2008 09:45

52 плюса

4015 Репутация автора

Другая система (еще не упомянутая в принятом ответе) - это PyInstaller, которая работала для моего проекта PyQt, когда py2exe не работал. Мне было проще в использовании.

http://www.pyinstaller.org/

Pyinstaller основан на установщике Python Гордона Макмиллана. Который больше не доступен.

Автор: Jamie Размещён: 28.08.2008 08:41

11 плюса

335 Репутация автора

Есть также PyGTK , который в основном является оболочкой Python для Gnome Toolkit. Я обнаружил, что мне легче сосредоточиться на этом, чем на Tkinter, поскольку я почти ничего не знал о программировании GUI ранее. Он работает довольно хорошо и имеет несколько хороших уроков. К сожалению, пока нет установщика для Python 2.6 для Windows, и, возможно, пока не будет.

Автор: Tofystedeth Размещён: 05.11.2008 03:53

2 плюса

6872 Репутация автора

# 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:51

0 плюса

1510 Репутация автора

Вы можете использовать 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из командной строки.

Автор: shahar_m Размещён: 08.06.2017 10:21

2 плюса

843 Репутация автора

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

Как объяснено в документации PySimpleGUI , для создания запускаемого файла .EXE :

pyinstaller -wF MyGUIProgram.py

Автор: MikeyB Размещён: 09.10.2018 12:30
32x32