Kaip sukurti tiesioginę vykdomąją tarpplatforminę GUI naudojant „Python“?

„Python“ veikia keliose platformose ir gali būti naudojama darbalaukyje ir žiniatinklio programose, todėl prieina prie išvados, kad yra būdas kompiliuoti jį į vykdomąjį failą „Mac“, „Windows“ ir „Linux“.

Problema ta, kad aš nesuprantu, kur pradėti ar kaip su juo rašyti grafinę sąsają, ar kas nors gali tai parodyti ir parodyti mane teisinga kryptimi?

231
06 авг. nustatė Teifionas rugpjūčio 06 d 2008-08-06 01:26 '08, 1:26 val. 2008-08-06 01:26
@ 11 atsakymų

Pirmiausia jums reikia GUI bibliotekos su Python apkaustais, o tada (jei norite) tam tikrą programą, kuri konvertuoja jūsų python scenarijus į atskirus vykdomuosius.

Įvairių platformų GUI bibliotekos su „Python“ jungtimis („Windows“, „Linux“, „Mac“)

Žinoma, yra daugybė, bet populiariausių laukinių, kuriuos mačiau:

Visas sąrašas pateikiamas http://wiki.python.org/moin/GuiProgramming

Vienas vykdomasis failas (visos platformos)

Vienas vykdomasis failas („Windows“)

  • py2exe - buvo populiariausias

Vienas vykdomasis failas („Linux“)

  • Freeze - veikia taip pat, kaip ir py2exe, bet pagrindinis dėmesys skiriamas Linux platformai.

Vienas vykdomasis failas („Mac“)

  • py2app - dar kartą veikia kaip py2exe, bet nukreipia į „Mac OS“
242
06 авг. atsakymą pateikė lubos hasko 06 rug . 2008-08-06 01:34 '08 at 1:34 nuo 2008-08-06 01:34

Kita sistema (dar nepaminėta priimtame atsakyme) yra „PyInstaller“, kuris dirbo mano „PyQt“ projekte, kai praėjo py2exe. Man buvo lengviau jį naudoti.

http://www.pyinstaller.org/

„Pyinstaller“ remiasi „Python“ diegimo programa „Gordon McMillan“. Kuris nebėra.

49
28 авг. Jamie atsakė 28 rugpjūčio mėn. 2008-08-28 11:41 '08 11:41 val. 2008-08-28 11:41

Alternatyvi priemonė py2exe yra bbfreeze , kuris sukuria „windows“ ir „linux“ vykdomuosius failus . Jis yra naujesnis nei py2exe, ir gerai tvarko kiaušinius. Radau, kad ši magija geriau veikia be konfigūracijos įvairioms programoms.

14
15 авг. Michael Twomey atsakymas rugpjūčio 15 d 2008-08-15 14:56 '08, 14:56, 2008-08-15 14:56

Taip pat yra PyGTK , kuris iš esmės yra „Python Gnome“ įrankių rinkinys. Tai buvo lengviau aplink mane kaip Tkinter, nes anksčiau nebuvo pakankamai žinių apie grafinę sąsają. Jis dirba labai gerai ir turi gerų vadovėlių. Deja, „Python 2.6“ sistemoje „Windows“ nėra diegimo programos, ir galbūt tai nėra taip ilgai.

11
05 нояб. atsakymas pateiktas Tofystedeth 05 lapkričio. 2008-11-05 18:53 '08, 18:53, 2008-11-05 18:53

Kadangi „Python“ yra įdiegta beveik visoms ne „Windows“ operacinėms sistemoms, pagal nutylėjimą vienintelis dalykas, kurį jums reikia padaryti, yra įdiegti visas nestandartines bibliotekas, kurias naudojate.

Tai pasakius, galite sukurti vykdomuosius failus, įskaitant „python“ interpretatorių, ir visas naudojamas bibliotekas. Tačiau tai gali sukurti didelį vykdomąjį failą.

„MacOS X“ netgi apima „Xcode IDE“ palaikymą, kad būtų sukurtos visiškai atskiros grafikos programos. Juos gali valdyti bet kuris naudotojas, kuriame veikia OS X.

6
06 авг. Matthew Schinckel atsakymas 2008-08-06 03:29 '08 at 3:29 am 2008-08-06 03:29

Dėl GUI:

PyQT yra gana daug nuorodų.

Kitas būdas sukurti greitą vartotojo sąsają - rašyti žiniatinklio programą, paleisti ją vietoje ir rodyti programą naršyklėje.

Be to, jei einate į „Tkinter“ variantą, kurį pasiūlė lubos hasko, galite pabandyti perkelti programą į darbą „Windows“ sistemoje be „Python“.

4
19 авг. Atsakymą pateikė fulmicoton 19 rug . 2008-08-19 12:45 '08 12:45 val. 2008-08-19 12:45

Nesu tikras, kad tai yra geriausias būdas tai padaryti, bet kai „Windows“ diegiu „Ruby GUI“ programas (o ne „Python“, bet turiu tą pačią „problemą kaip .exe“), tiesiog parašau trumpą pradžią „C #“, kuris mano pagrindinį scenarijų. Jis yra sukompiliuotas į vykdomąjį failą, o tada turiu vykdomąjį failą.

4
15 авг. Brian Warshaw atsakymas, rugpjūčio 15 d 2008-08-15 15:00 '08 15:00 val. 2008-08-15 15:00
 # 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

Tada turėtumėte naudoti py2exe, pvz., Pridėti visus failus, reikalingus programai paleisti viename aplanke, net jei naudotojas neturi kompiuterio savo kompiuterio (kalbu apie „Windows“, „Apple os“ nėra reikalo iš vykdomojo failo, manau nes jis ateina su python į jį be jokių poreikių ją įdiegti.

Sukurkite šį failą

1) Sukurti setup.py

su šiuo kodu:

 from distutils.core import setup import py2exe setup(console=['l4h.py']) 

išsaugokite jį aplanke

2) Įdėkite programą į tą patį aplanką setup.py, įdėkite programą, kurią norite, kad ji būtų paskirstyta šiame aplanke: es: l4h.py

ps: pakeiskite failo pavadinimą (nuo lh4 iki norimo, tai yra pavyzdys)

3) Paleiskite cmd iš šio aplanko (aplanke dešiniuoju pelės mygtuku spustelėkite + pamainą ir pasirinkite pradžios cmd čia)
4) rašykite į cmd:> python setup.py py2exe
5) dist aplanke yra visi reikalingi failai
6) galite jį pritvirtinti ir skleisti

„Pyinstaller“

Įdiekite jį iš cmd

**

„pip install pyinstaller“

**

Paleiskite jį iš cmd nuo aplanko, kuriame yra failas.

**

pyinstaller file.py

**

2
31 янв. Giovanni Gianni atsakymas, sausio 31 d 2017-01-31 22:51 '17, 10:51 pm 2017-01-31 22:51

Jums nereikia kompiliuoti „python“ už „Mac“ / „Windows“ / „Linux“. Tai yra aiškinama kalba, todėl jums reikia tik įdiegto „Python“ vertėjo į pasirinktą sistemą (ji yra prieinama visoms trims platformoms).

Kalbant apie GUI biblioteką, kuri dirba su kryžminiu platformu, „Python Tk / Tcl“ valdiklio biblioteka veikia labai gerai, ir manau, kad tai yra gana plati platforma.

„Tkinter“ yra „Tk / Tcl“ python sąsaja

Python projekto tinklalapyje:

„Tkinter“ nėra vienintelis „Python“ „GuiProgramming“ įrankių rinkinys. Tačiau dažniausiai naudojamas ir beveik vienintelis, kuris perduodamas tarp „Unix“, „Mac“ ir „Windows“.

1
06 авг. Justin Standard atsakė į 06 rugpjūčio mėn. 2008-08-06 01:40 '08 at 1:40 2008-08-06 01:40

Galite naudoti programą „ appJar kad sukurtumėte pagrindinę 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() 

2019

PySimpleGUI apvynioja tkinter ir veikia „Python 3“ ir 2.7. Galite sukurti pasirinktines grafines sąsajas, kurios naudoja tuos pačius valdiklius, kuriuos rasite „tkinter“ (slankiklius, žymės >

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

2019

09 окт. atsakymas pateikiamas MikeyB 09 okt. 2018-10-09 15:30 '18, 15:30 2018-10-09 15:30