Vă mulțumim pentru susținere

Cum pot crea o aplicație GUI direct-executabilă pe platformă folosind Python?

Python funcționează pe mai multe platforme și poate fi folosit pentru aplicații desktop și web, concluzionând că există o modalitate de ao compila într-un executabil pentru Mac, Windows și Linux.

Problema fiind că nu am idee de unde să încep sau cum să scriu un GUI cu el, poate cineva să vadă o lumină și să mă îndrepte în direcția cea bună?

0
adăugat editat

10 răspunsuri

Din moment ce python este instalat pe aproape orice sistem de operare non-Windows implicit acum, singurul lucru de care trebuie să vă asigurați este că toate bibliotecile non-standard pe care le utilizați sunt instalate.

Acestea fiind spuse, este posibil să se construiască executabile care să includă interpretul python și orice biblioteci pe care le utilizați. Cu toate acestea, este posibil să creați un executabil mare.

MacOS X include chiar și suportul IDE-ului Xcode pentru crearea de aplicații GUI independente. Acestea pot fi gestionate de orice utilizator care execută OS X.

0
adăugat

Nu este nevoie să compilați python pentru Mac / Windows / Linux. Este un limbaj interpretat, deci pur și simplu trebuie să aveți instalat interpretul Python pe sistemul ales de dvs. (este disponibil pentru toate cele trei platforme).

În ceea ce privește o bibliotecă GUI care funcționează pe mai multe platforme, biblioteca widget Tk / Tcl a Python funcționează foarte bine și cred este suficient de încrucișată.

Tkinter is the python interface to Tk/Tcl

Din pagina web a proiectului python:

Tkinter nu este singurul GuiProgramming   set de instrumente pentru Python. Este totuși   cel mai frecvent utilizat unul, și aproape   doar unul dintre cele portabile   Unix, Mac și Windows

0
adăugat
Pentru că există câteva abordări pe care le cunosc: probabil că veți scrie un program de instalare în script-ul de batch sau compilat pentru sistemul țintă care ar elimina fișierele necesare undeva și va instala bibliotecile și runtime-urile necesare în acest proces.
adăugat autor Justin Standard
Mai mult, instalatorul dvs. ar verifica existența versiunii corecte a Python și, dacă a găsit-o, utilizați-l, altfel, instalați Python ca parte a procesului de instalare.
adăugat autor Justin Standard
Deci, cum ați face un pachet de instalare pe sistemele de oameni care doresc doar o instalare în 1 pas (de exemplu, faceți dublu clic pe un singur pachet de instalare în Windows)?
adăugat autor Craig McQueen
Instalarea programului Python ca parte a instalării proprii ar fi puțin fiddly, deoarece ar trebui să vă ocupați de posibilitatea instalării deja a versiunii greșite a Python. Va trebui să instalați unul lângă celălalt, astfel încât aplicația dvs. să poată accesa versiunea nou instalată a Python, dar toate aplicațiile existente au continuat să utilizeze versiunea veche a Python. (adică fără a împiedica lucruri precum asociația de fișiere .py sau PATH)
adăugat autor Jonathan Hartley
Corect - dar cea de-a doua opțiune "instalați altfel python ca parte a procesului de instalare" este exact ceea ce vorbesc. Asta ar fi fidela, din motivele pe care le-am dat.
adăugat autor Jonathan Hartley
Sau faceți doar un instalator care va instala o distribuție Python inclusă în bibliotecile de care aveți nevoie, cum ar fi Python (x, y) (numai pentru Windows și Linux) sau Enthought Canopy Express (pentru Linux, Windows și MacOSX).
adăugat autor gaborous

Nu sunt sigur că acesta este cel mai bun mod de a face acest lucru, dar când instalez aplicații Ruby GUI (nu Python, dar are aceeași "problemă" în ceea ce privește fișierele .exe) pe Windows, scriu doar lansator scurt în C # care solicită scriptul meu principal. Se compilează într-un executabil și apoi am o executabilă aplicație.

0
adăugat
Pentru aceste aplicații, niciunul dintre utilizatorii mei nu este anonim. Știu dacă au timpul de executare și, dacă nu, le pot instala pentru ei. Principala preocupare în acest subiect este cum să lansați aceste aplicații fără a fi nevoie să deschideți un prompt de comandă și să tastați executabilul runtime urmat de numele programului.
adăugat autor Brian Warshaw
hmm, bine, dar ce se întâmplă dacă programul Ruby nu este instalat?
adăugat autor Kugel
@Brian Ai vazut tehnica _why pentru pentru auto- executarea aplicațiilor pentru pantofi? S-ar putea să se facă, probabil, cu programe non-Shoes.
adăugat autor Adam Lassek
# 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

Apoi ar trebui să utilizați py2exe, de exemplu, pentru a aduce într-un singur dosar toate fișierele necesare pentru a rula aplicația, chiar dacă utilizatorul nu are python pe PC-ul său (vorbesc despre ferestre ... pentru Apple nu este nevoie de de un fișier executabil, cred, așa cum vine cu python în ea, fără a fi nevoie să-l instalați.

Creați acest fișier

1) Creați un setup.py

cu acest cod:

din setarea de import pentru distutils.core import py2exe

setup (consola = [ 'l4h.py'])

salvați-l într-un dosar

2) Puneți programul în același director din setup.py puneți în acest dosar programul pe care doriți să-l distribuiți: es: l4h.py

ps: modificați numele fișierului (de la l4h la orice doriți, adică un exemplu)

3) Run cmd from that folder (on the folder, right click + shift and choose start cmd here) 4) write in cmd:>python setup.py py2exe 5) in the dist folder there are all the files you need 6) you can zip it and distribute it

0
adăugat

Un alt sistem (care nu este menționat în răspunsul acceptat încă) este PyInstaller, care a lucrat pentru un proiect PyQt al meu când py2exe nu ar fi. Mi sa părut mai ușor de folosit.

http://www.pyinstaller.org/

Pyinstaller se bazează pe Python Installer al lui Gordon McMillan. Care nu mai este disponibil.

0
adăugat
Și mai mult de 3 ani după ce a fost scris un răspuns, pyincler STILL nu susține Python 3 și nici nu este inclus în foaia de parcurs a lansărilor viitoare. Adică, suportul AIX și Solaris este într-adevăr mai util decât Python 3?
adăugat autor Dave
Acesta susține Python 2.7 și Python 3.3, 3.4 și 3.5 acum.
adăugat autor Katu
Și chiar și acum 3.6.
adăugat autor Rexcirus

În primul rând veți avea nevoie de o bibliotecă GUI cu legături Python și apoi (dacă doriți) un program care va converti scripturile dvs. python în executabile independente.

Biblioteci inter-platformă GUI cu legături Python (Windows, Linux, Mac)

Desigur, există multe, dar cele mai populare pe care le-am văzut în sălbăticie sunt:

  • Tkinter - based on Tk GUI toolkit (de-facto standard GUI library for python, free for commercial projects)
  • WxPython - based on WxWidgets (very popular, free for commercial projects)
  • PyQt - based on Qt (also very popular and more stable than WxWidgets but costly license for commercial projects)

Complete list is at http://wiki.python.org/moin/GuiProgramming

Executabil unic (Windows)

  • py2exe - Probably the most popular out there (PyInstaller is also gaining in popularity)

Executare unică (Linux)

  • Freeze - works the same way like py2exe but targets Linux platform

Executare unică (Mac)

  • py2app - again, works like py2exe but targets Mac OS
0
adăugat
Discutați despre fișierul pyinstaller pentru Windows, în loc de py2exe.
adăugat autor changelog
... de aceea ar trebui să luați în considerare foarte mult utilizarea PySide care este LGPL. Este, de asemenea Pythonic Python mai mult Python 2 API.
adăugat autor Chris Morgan
Merită menționat faptul că de la 4,5 QT va fi sub LGPL.
adăugat autor CTT
... dar PyQt este încă GPL.
adăugat autor Nicholas Riley
S-ar putea să adăugați și cx_Freeze , care este încrucișată, întreținută și acceptă Python 3. X.
adăugat autor fbmd
Platypus pentru Mac OS X este, de asemenea, o opțiune. sveinbjorn.org/platypus
adăugat autor svth

Un instrument alternativ pentru py2exe este bbfreeze care generează executabile pentru Windows și Linux. Este mai nou decât py2exe și se ocupă de ouă destul de bine. Am descoperit că funcționează magic mai bine fără configurare pentru o mare varietate de aplicații.

0
adăugat

Pentru GUI însuși:

PyQT is pretty much the reference.

Un alt mod de a dezvolta o interfață rapidă de utilizator este de a scrie o aplicație web, îl rulați local și afișați aplicația în browser.

În plus, dacă te duci pentru opțiunea Tkinter sugerată de lubos hasko poate doriți să încercați portablepy pentru ca aplicația să fie rulată în mediul Windows fără Python.

0
adăugat

Există, de asemenea, PyGTK , care este în esență un pachet Python pentru Gnome Toolkit. Mi-a fost mai ușor să-mi împachetez mintea în jurul valorii de Tkinter, provenind din prea puțină cunoaștere a programării GUI anterior. Funcționează destul de bine și are câteva tutoriale bune. Din păcate, încă nu există un program de instalare pentru Python 2.6 pentru Windows și nu poate fi pentru un timp.

0
adăugat

Puteți utiliza appJar pentru dezvoltarea GUI de bază.

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 atunci când rulează

Vedeți documentația de la site-ul appjar .

Instalarea se face cu pip install appjar din linia de comandă.

0
adăugat