W jaki sposób można utworzyć bezpośrednio wykonywalne cross-platform GUI aplikacji przy użyciu Python?

głosy
224

Python działa na wielu platformach i mogą być wykorzystane do zastosowań stacjonarnych i internetowych, więc wnioskuję, że istnieje jakiś sposób, aby go skompilować do pliku wykonywalnego dla Mac, Windows i Linux.

Problemem jest nie mam pojęcia od czego zacząć i jak napisać GUI z nim, ktoś może rzucić nieco światła na ten temat i wskazać mi w dobrym kierunku, proszę?

Utwórz 05/08/2008 o 23:26
źródło użytkownik
W innych językach...                            


11 odpowiedzi

głosy
232

Po pierwsze trzeba będzie niektóre biblioteki GUI z powiązaniami Pythona, a następnie (jeśli chcesz) jakiś program, który będzie konwertować skrypty Pythona do samodzielnych plików wykonywalnych.

Cross-platform biblioteki GUI z powiązaniami Pythona (Windows, Linux, Mac)

Oczywiście, istnieje wiele, ale najbardziej popularne, że widziałem w środowisku naturalnym są:

  • Tkinter - w oparciu o Tk GUI Toolkit (de-facto standardem biblioteka GUI dla Pythona, wolne dla komercyjnych projektów)
  • WxPython - w oparciu o wxWidgets (bardzo popularny, darmowy dla projektów komercyjnych)
  • PyQt - w oparciu o Qt (również bardzo popularne i bardziej stabilny niż wxWidgets ale kosztownych licencji na projekty komercyjne)

Pełna lista znajduje się http://wiki.python.org/moin/GuiProgramming

Pojedynczy plik wykonywalny (Windows)

  • py2exe - Prawdopodobnie najbardziej popularny tam ( PyInstaller jest również zyskuje na popularności)

Pojedynczy plik wykonywalny (Linux)

  • Freeze - działa tak samo jak py2exe ale cele platformę Linux

Pojedynczy plik wykonywalny (Mac)

  • py2app - znów działa jak py2exe ale skierowany Mac OS
Odpowiedział 05/08/2008 o 23:34
źródło użytkownik

głosy
47

Inny system (nie wymienione jeszcze w przyjętym odpowiedź) jest PyInstaller, który pracował dla projektu pyqt kopalni kiedy py2exe nie. Uważam, że to łatwiejsze w użyciu.

http://www.pyinstaller.org/

Pyinstaller jest oparty na Pythonie Instalatora Gordona McMillana. Który nie jest już dostępny.

Odpowiedział 28/08/2008 o 09:41
źródło użytkownik

głosy
14

Alternatywą narzędzie py2exe jest bbfreeze który generuje pliki wykonywalne dla Windows i Linux. Jest to nowsza niż py2exe i uchwyty jaja całkiem dobrze. Znalazłem to w magiczny sposób działa lepiej bez konfiguracji dla szerokiej gamy zastosowań.

Odpowiedział 15/08/2008 o 12:56
źródło użytkownik

głosy
11

Jest też PyGTK , który jest zasadniczo otoki Python dla Gnome Toolkit. Znalazłem łatwiej owinąć dookoła zdanie niż Tkinter, pochodzących z prawie bez znajomości programowania GUI poprzednio. To działa bardzo dobrze i ma kilka dobrych tutoriali. Niestety nie jest instalatorem dla Python 2.6 dla Windows jeszcze, i nie może być przez jakiś czas.

Odpowiedział 05/11/2008 o 16:53
źródło użytkownik

głosy
6

Od python jest zainstalowany na prawie każdym innym niż Windows OS domyślnie teraz, jedyną rzeczą, którą naprawdę trzeba upewnić się, że są zainstalowane wszystkie niestandardowych bibliotek używasz.

Mimo, że jest to możliwe, aby zbudować pliki wykonywalne, które zawierają interpreter Pythona i żadnych bibliotek użyć. Jest prawdopodobne, aby stworzyć dużą wykonywalny, jednak.

MacOS X zawiera nawet wsparcie w Xcode IDE do tworzenia pełnych samodzielne aplikacje GUI. Mogą być prowadzone przez dowolnego użytkownika z systemem OS X.

Odpowiedział 06/08/2008 o 01:29
źródło użytkownik

głosy
4

Dla samego GUI:

Pyqt jest dość dużo odniesienie.

Innym sposobem, aby rozwijać szybki interfejs użytkownika jest napisać aplikację, mają działać lokalnie i wyświetlić aplikację w przeglądarce.

Plus, jeśli przejdziesz do opcji Tkinter sugerowanej przez Lubos Hasko może chcesz spróbować portablepy mieć swoją aplikację uruchomić na środowisku Windows bez Pythona.

Odpowiedział 19/08/2008 o 10:45
źródło użytkownik

głosy
4

Nie jestem pewien, że jest to najlepszy sposób to zrobić, ale kiedy jestem rozmieszczanie Ruby GUI aplikacji (nie Python, ale ma ten sam „problem” w miarę .exe są zainteresowane) w systemie Windows, po prostu napisać krótki wyrzutnia w C #, który wywołuje na mojej głównej skryptu. Kompiluje do pliku wykonywalnego, a ja wtedy plik wykonywalny aplikacji.

Odpowiedział 15/08/2008 o 13:00
źródło użytkownik

głosy
2
# 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

Następnie należy użyć py2exe, na przykład, aby wnieść w jednym katalogu wszystkie pliki potrzebne do uruchomienia aplikacji, nawet jeśli użytkownik nie python na swoim komputerze (mówię okien ... na os jabłkowego nie ma potrzeby pliku wykonywalnego, myślę, że to przyjdzie z pytona w nim bez potrzeby instalowania go.

Tworzenie tego pliku

1) Tworzenie setup.py

z tym kodem:

z distutils.core konfiguracji import import py2exe

konfiguracja (konsola = [ 'l4h.py'])

zapisać go w folderze

2) Umieść swój program w tym samym folderze setup.py umieścić w tym folderze program, który chcemy, aby było distribuitable: ES: l4h.py

ps: zmiana nazwy pliku (z l4h do wszystkiego co chcesz, że jest przykładem)

3) Uruchom cmd z tego folderu (na folderze, kliknij prawym przyciskiem i wybierz + Shift rozpocząć cmd tutaj) 4) napisać w cmd:> python setup.py py2exe 5) w folderze dist są wszystkie pliki potrzebne 6) ty można spakować ją i rozprowadzać go

Odpowiedział 31/01/2017 o 19:51
źródło użytkownik

głosy
1

PySimpleGUI owija Tkinter i działa na Python 3 i 2,7. Można zrobić własne GUI, które wykorzystują wszystkie z tych samych widgetów, które można znaleźć w tkinter (suwaki, pola wyboru, przyciski radiowe, ...). Kod wydaje się być bardzo zwarte i czytelne.

#!/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()

Obraz stworzony z zamieszczonych kodu PySimpleGUI

Jak wyjaśniono w Dokumentacji PySimpleGUI , aby zbudować plik .exe uruchomieniu:

pyinstaller -wF MyGUIProgram.py

Odpowiedział 09/10/2018 o 12:30
źródło użytkownik

głosy
1

Nie trzeba skompilować Pythona na Mac / Windows / Linux. Jest językiem interpretowanym, więc po prostu trzeba mieć zainstalowany interpreter Pythona w systemie do wyboru (jest ona dostępna dla wszystkich trzech platform).

Jeśli chodzi o biblioteki GUI, który działa wieloplatformowym, Pythona Tk / Tcl widget biblioteka działa bardzo dobrze i wierzę, że jest wystarczająco wieloplatformowym.

Tkinter to interfejs Pythona do TK / Tcl

Ze strony internetowej projektu python:

Tkinter nie jest jedynym GuiProgramming Toolkit dla Pythona. Jest to jednak najczęściej stosowanym jeden, i niemal jedynym, który jest przenośny między Unix, Mac i Windows

Odpowiedział 05/08/2008 o 23:40
źródło użytkownik

głosy
0

Można użyć appJardo podstawowego rozwoju GUI.

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 podczas uruchamiania

Zobacz dokumentację na miejscu appJar .

Instalacja składa się z pip install appjarod linii poleceń.

Odpowiedział 08/06/2017 o 10:21
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more