
Python λειτουργεί σε πολλαπλές πλατφόρμες και μπορεί να χρησιμοποιηθεί για την επιφάνεια εργασίας και web εφαρμογών, έτσι καταλήγω στο συμπέρασμα ότι δεν υπάρχει κάποιος τρόπος για να συγκεντρώσει σε ένα εκτελέσιμο για Mac, Windows και Linux.


Το πρόβλημα είναι δεν έχω ιδέα από πού να αρχίσω ή πώς να γράψει ένα γραφικό περιβάλλον με αυτό, μπορεί κανείς να ρίξει λίγο φως σε αυτό και το σημείο μου προς τη σωστή κατεύθυνση παρακαλώ;

 
Πώς μπορώ να δημιουργήσω ένα άμεσα εκτελέσιμο cross-platform GUI εφαρμογή με τη χρήση Python;
=============================================================================================



Πρώτα θα χρειαστεί κάποια βιβλιοθήκη GUI με δέστρες Python και στη συνέχεια (αν θέλετε) κάποιο πρόγραμμα που θα μετατρέψει τα σενάρια python σας σε αυτόνομο εκτελέσιμα.


**Cross-platform βιβλιοθήκες GUI με δέστρες Python (Windows, Linux, Mac)**


Φυσικά, υπάρχουν πολλά, αλλά το πιο δημοφιλές που έχω δει στην άγρια ​​είναι:


* [Tkinter](http://wiki.python.org/moin/TkInter) - με βάση [Tk GUI toolkit](http://www.tcl.tk/) (de-facto πρότυπο βιβλιοθήκης GUI για python, δωρεάν για τα εμπορικά προγράμματα)
* [WxPython](http://www.wxpython.org/) - με βάση [wxWidgets](http://www.wxwidgets.org/) (πολύ δημοφιλής, δωρεάν για τα εμπορικά προγράμματα)
* [PyQt](http://www.riverbankcomputing.co.uk/news) - βασισμένο σε [Qt](http://trolltech.com/products/qt/) (επίσης πολύ δημοφιλή και πιο σταθερά από ό, τι wxWidgets αλλά δαπανηρή άδεια για τα εμπορικά προγράμματα)


Πλήρης κατάλογος είναι σε <http://wiki.python.org/moin/GuiProgramming>


**Ενιαίο εκτελέσιμο (Windows)**


* [py2exe](http://www.py2exe.org/) - Πιθανώς το πιο δημοφιλές εκεί έξω ( [PyInstaller](https://stackoverflow.com/questions/2933/an-executable-python-app/31859#31859) επίσης κερδίζει σε δημοτικότητα)


**Ενιαία εκτελέσιμο (Linux)**


* [Πάγωμα](http://wiki.python.org/moin/Freeze) - λειτουργεί με τον ίδιο τρόπο όπως py2exe αλλά στοχεύει την πλατφόρμα Linux


**Ενιαία εκτελέσιμο (Mac)**


* [py2app](https://pythonhosted.org/py2app/) - και πάλι, λειτουργεί σαν py2exe αλλά στοχεύει Mac OS

 

Δεν χρειάζεται να *συγκεντρώνουν* python για Mac / Windows / Linux. Είναι μια ερμηνευμένη γλώσσα, έτσι απλά πρέπει να έχουν το διερμηνέα Python εγκατεστημένη στο σύστημα της επιλογής σας (θα είναι διαθέσιμο και για τις τρεις πλατφόρμες).


Όσο για μια βιβλιοθήκη GUI που λειτουργεί διαγώνια πλατφόρμα, Python είναι [Tk / Tcl](http://www.tcl.tk/) βιβλιοθήκη widget λειτουργεί πολύ καλά, και πιστεύω ότι είναι αρκετά διαγώνια πλατφόρμα.


[Tkinter](http://docs.python.org/lib/module-Tkinter.html) είναι η διασύνδεση python για Tk / Tcl


Από την ιστοσελίδα του έργου python: 



> 
> Tkinter δεν είναι η μόνη GuiProgramming εργαλειοθήκη για την Python. Ωστόσο, είναι η πιο συχνά χρησιμοποιούμενη μία, και σχεδόν το μόνο που είναι φορητές μεταξύ Unix, Mac και Windows
> 
> 
> 

 

Από python έχει εγκατασταθεί σχεδόν σε κάθε μη-λειτουργικό σύστημα Windows από προεπιλογή τώρα, το μόνο πράγμα που πραγματικά πρέπει να βεβαιωθείτε ότι είναι ότι όλες οι μη τυποποιημένες βιβλιοθήκες που χρησιμοποιείτε είναι εγκατεστημένα.


Τούτου λεχθέντος, είναι δυνατό να οικοδομήσουμε εκτελέσιμα που περιλαμβάνουν τον διερμηνέα python, και κάθε βιβλιοθήκες που χρησιμοποιείτε. Αυτό είναι πιθανό να δημιουργήσει ένα μεγάλο εκτελέσιμο, όμως.


MacOS X περιλαμβάνει ακόμη την υποστήριξη του Xcode IDE για τη δημιουργία πλήρως αυτόνομη εφαρμογές GUI. Αυτά μπορεί να εκτελεστεί από οποιονδήποτε χρήστη που τρέχει OS X.

 

Ένα εναλλακτικό εργαλείο για να py2exe είναι [bbfreeze](http://pypi.python.org/pypi/bbfreeze/) που δημιουργεί εκτελέσιμα για Windows και Linux. Είναι νεότερο από py2exe και χειρίζεται τα αυγά αρκετά καλά. Έχω διαπιστώσει ότι λειτουργεί μαγικά καλύτερα χωρίς διαμόρφωσης για μια μεγάλη ποικιλία εφαρμογών.

 

Δεν είμαι σίγουρος ότι αυτός είναι ο καλύτερος τρόπος για να το κάνουμε, αλλά όταν είμαι ανάπτυξη Ruby GUI εφαρμογές (δεν Python, αλλά έχει το ίδιο «πρόβλημα» όσο το .exe που ανησυχούν) για τα Windows, απλά γράφετε σύντομη εκτοξευτή σε C # που καλεί την κύρια δέσμη ενεργειών μου. Θα συγκεντρώνει σε ένα εκτελέσιμο, και στη συνέχεια να έχουν μια εκτελέσιμη εφαρμογή.

 

Για το ίδιο το GUI:


[PyQt](http://wiki.python.org/moin/PyQt) είναι λίγο πολύ η αναφορά.


Ένας άλλος τρόπος για να αναπτύξουν μια γρήγορη διεπαφή χρήστη είναι να γράψει ένα web app, πρέπει να τρέξει σε τοπικό επίπεδο και να εμφανίσει την εφαρμογή του προγράμματος περιήγησης.


Πλέον, αν πάτε για την επιλογή Tkinter προτείνεται από Lubos hasko μπορεί να θέλετε να δοκιμάσετε portablepy να έχουν εφαρμογή σας τρέχει σε περιβάλλον Windows χωρίς Python.

 

Ένα άλλο σύστημα (που δεν αναφέρονται στην αποδεκτή απάντηση ακόμα) είναι PyInstaller, η οποία εργάστηκε για ένα έργο PyQt μου όταν py2exe δεν θα. Βρήκα το πιο εύκολο στη χρήση.


<http://www.pyinstaller.org/>


Pyinstaller βασίζεται σε Gordon McMillan της Python εγκατάστασης. Που δεν είναι πλέον διαθέσιμο.

 

Υπάρχει, επίσης, [PyGTK](http://pygtk.org/) , το οποίο είναι ουσιαστικά ένα περιτύλιγμα Python για το Gnome Toolkit. Έχω βρεθεί πιο εύκολο να τυλίξει το μυαλό μου γύρω από Tkinter, που προέρχονται από σχεδόν καμία γνώση προγραμματισμού GUI στο παρελθόν. Δουλεύει αρκετά καλά και έχει κάποιες καλές tutorials. Δυστυχώς δεν υπάρχει πρόγραμμα εγκατάστασης για την Python 2.6 για Windows αλλά και δεν μπορεί να είναι για λίγο.

 


```
# 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 στον υπολογιστή του (μιλώ από τα παράθυρα ... για το λειτουργικό σύστημα της Apple δεν υπάρχει ανάγκη του σε ένα εκτελέσιμο αρχείο, νομίζω, δεδομένου ότι έρχονται με python σε αυτό χωρίς να χρειάζεται να το εγκαταστήσετε.


Δημιουργήστε το αρχείο
======================


1) Δημιουργήστε ένα setup.py
----------------------------


με αυτόν τον κωδικό:


από distutils.core py2exe εισαγωγή ρυθμίσεων εισαγωγής


εγκατάστασης (console = [ 'l4h.py'])


αποθηκεύστε το σε ένα φάκελο
----------------------------


2) Βάλτε το πρόγραμμά σας στον ίδιο φάκελο της setup.py θέσει σε αυτό το φάκελο του προγράμματος που θέλετε να κάνετε είναι distribuitable: es: l4h.py


ps: να αλλάξετε το όνομα του αρχείου (από l4h σε ό, τι θέλετε, αυτό είναι ένα παράδειγμα)
-----------------------------------------------------------------------------------------


3) Run cmd από αυτόν το φάκελο (στο φάκελο, κάντε δεξί κλικ shift + και επιλέξτε αρχίσει cmd εδώ) 4) γράψει στο cmd:> python setup.py py2exe 5) στο dist φάκελο υπάρχουν όλα τα αρχεία που χρειάζεστε 6) που να το φερμουάρ και να το διανείμει

 

Μπορείτε να χρησιμοποιήσετε `appJar`για τη βασική ανάπτυξη 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 κατά την εκτέλεση](https://i.stack.imgur.com/yin42.jpg)](https://i.stack.imgur.com/yin42.jpg)


Δείτε την τεκμηρίωση στο [appJar χώρο](http://appjar.info) .


Η εγκατάσταση γίνεται με `pip install appjar`από τη γραμμή εντολών.

 

PySimpleGUI αναδιπλώνεται TkInter και λειτουργεί σε Python 3 και 2.7. Μπορείτε να κάνετε έθιμο γραφικά περιβάλλοντα που χρησιμοποιούν όλοι τις ίδιες widgets που μπορείτε να βρείτε στο 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()

```

[![Εικόνα που δημιουργήθηκε από δημοσιεύτηκε κωδικό PySimpleGUI](https://i.stack.imgur.com/VCegl.jpg)](https://i.stack.imgur.com/VCegl.jpg)


Όπως εξηγείται στην [Τεκμηρίωση PySimpleGUI](http://www.PySimpleGUI.org) , για να [χτίσει το αρχείο .exe](https://pysimplegui.readthedocs.io/#creating-a-windows-exe-file) να εκτελέσετε:



> 
> pyinstaller -wF MyGUIProgram.py
> 
> 
> 

 


> 
> **!!! Kivy !!!**
> 
> 
> 


Έμεινα έκπληκτος βλέποντας ότι κανείς δεν αναφέρονται Kivy !!!


Έχω μόλις γίνει ένα έργο χρησιμοποιώντας Tkinter, αν το κάνουν συνήγορος ότι έχει βελτιωθεί πολύ, εξακολουθεί να μου δίνει μια αίσθηση των Windows 98, γι 'αλλάξει σε [Kivy](https://kivy.org/#home) .


Έχω παρακολουθήσει ένα [σεμινάριο σειρά](https://www.youtube.com/playlist?list=PLzMcBGfZo4-kSJVMyYeOQ8CXJ3z1k7gHn) αν βοηθάει ...


Ακριβώς για να δώσει μια ιδέα για το πώς Kivy εμφάνιση, δείτε αυτό (το έργο είμαι εργασίας σχετικά):


[![Το Έργο ότι είμαι εργασίας σχετικά](https://i.stack.imgur.com/IMl67.png)](https://i.stack.imgur.com/IMl67.png)


Και έχω εργαστεί σε αυτό για σχεδόν μια εβδομάδα τώρα! Τα οφέλη για Kivy ρωτάτε; Ελέγξτε [αυτό](https://www.reddit.com/r/kivy/comments/4omhca/what_exactly_are_the_benefits_of_kivy/)


Ο λόγος για τον οποίο επέλεξα αυτό, το βλέμμα του και ότι μπορεί να χρησιμοποιηθεί σε κινητά, καθώς και.

 