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

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

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

Ответы [ 11 ]

258 голосов
/ 06 августа 2008

Сначала вам потребуется библиотека GUI с привязками Python, а затем (если хотите) программа, которая преобразует ваши скрипты Python в автономные исполняемые файлы.

Библиотеки кроссплатформенного графического интерфейса с привязками 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
54 голосов
/ 28 августа 2008

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

http://www.pyinstaller.org/

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

14 голосов
/ 15 августа 2008

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

11 голосов
/ 05 ноября 2008

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

6 голосов
/ 06 августа 2008

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

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

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

5 голосов
/ 19 августа 2008

Для самого графического интерфейса:

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

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

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

4 голосов
/ 15 августа 2008

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

2 голосов
/ 09 октября 2018

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()

Image created from posted PySimpleGUI code

Как объяснено в PySimpleGUI Documentation , чтобы собрать файл .EXE , который вы запускаете:

pyinstaller -wF MyGUIProgram.py

2 голосов
/ 31 января 2017
# 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

**

1 голос
/ 06 августа 2008

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

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

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

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

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

...