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

StackOverflow https://stackoverflow.com/questions/2933

Вопрос

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

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

Это было полезно?

Решение

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

Кроссплатформенные библиотеки графического интерфейса пользователя с привязками к Python (Windows, Linux, Mac)

Конечно, их много, но самыми популярными, которые я видел в wild, являются:

Полный список находится по адресу http://wiki .python.org/moin/GuiProgramming

Единый исполняемый файл (для всех платформ)

Одиночный исполняемый файл (Windows)

  • py2exe - раньше был самым популярным

Одиночный исполняемый файл (Linux)

  • Замерзнуть - работает так же, как py2exe, но ориентирован на платформу Linux

Одиночный исполняемый файл (Mac)

  • py2app - опять же, работает как py2exe, но нацелен на Mac OS

Другие советы

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

http://www.pyinstaller.org/

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

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

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

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

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

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

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

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

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

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

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

# 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 и выберите здесь запустить cmd).
4) напишите в cmd:> python setup.py py2exe
5) в папке dist есть все нужные вам файлы
6) вы можете сжать его и распространить

Pyinstaller - Установщик

Установите его из cmd

**

установка pip pyinstaller

**

Запустите его из cmd из папки, в которой находится файл

**

pyinstaller - установщик file.py

**

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, к создайте файл .EXE ты бежишь:

pyinstaller -wF MyGUIProgram.py

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

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

Ткинтеръ является ли python интерфейсом для Tk / Tcl

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

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

Вы можете использовать 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 when running

Смотрите документацию по адресу Сайт appJar.

Установка производится с помощью pip install appjar из командной строки.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top