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

ψήφοι
224

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

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

Δημοσιεύθηκε 05/08/2008 στις 23:26
πηγή χρήστη
Σε άλλες γλώσσες...                            


11 απαντήσεις

ψήφοι
232

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

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

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

  • Tkinter - με βάση Tk GUI toolkit (de-facto πρότυπο βιβλιοθήκης GUI για python, δωρεάν για τα εμπορικά προγράμματα)
  • WxPython - με βάση wxWidgets (πολύ δημοφιλής, δωρεάν για τα εμπορικά προγράμματα)
  • PyQt - βασισμένο σε Qt (επίσης πολύ δημοφιλή και πιο σταθερά από ό, τι wxWidgets αλλά δαπανηρή άδεια για τα εμπορικά προγράμματα)

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

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

  • py2exe - Πιθανώς το πιο δημοφιλές εκεί έξω ( PyInstaller επίσης κερδίζει σε δημοτικότητα)

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

  • Πάγωμα - λειτουργεί με τον ίδιο τρόπο όπως py2exe αλλά στοχεύει την πλατφόρμα Linux

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

  • py2app - και πάλι, λειτουργεί σαν py2exe αλλά στοχεύει Mac OS
Απαντήθηκε 05/08/2008 στις 23:34
πηγή χρήστη

ψήφοι
47

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

http://www.pyinstaller.org/

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

Απαντήθηκε 28/08/2008 στις 09:41
πηγή χρήστη

ψήφοι
14

Ένα εναλλακτικό εργαλείο για να py2exe είναι bbfreeze που δημιουργεί εκτελέσιμα για Windows και Linux. Είναι νεότερο από py2exe και χειρίζεται τα αυγά αρκετά καλά. Έχω διαπιστώσει ότι λειτουργεί μαγικά καλύτερα χωρίς διαμόρφωσης για μια μεγάλη ποικιλία εφαρμογών.

Απαντήθηκε 15/08/2008 στις 12:56
πηγή χρήστη

ψήφοι
11

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

Απαντήθηκε 05/11/2008 στις 16:53
πηγή χρήστη

ψήφοι
6

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

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

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

Απαντήθηκε 06/08/2008 στις 01:29
πηγή χρήστη

ψήφοι
4

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

PyQt είναι λίγο πολύ η αναφορά.

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

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

Απαντήθηκε 19/08/2008 στις 10:45
πηγή χρήστη

ψήφοι
4

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

Απαντήθηκε 15/08/2008 στις 13:00
πηγή χρήστη

ψήφοι
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

Στη συνέχεια, θα πρέπει να χρησιμοποιήσετε 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) που να το φερμουάρ και να το διανείμει

Απαντήθηκε 31/01/2017 στις 19:51
πηγή χρήστη

ψήφοι
1

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

Όπως εξηγείται στην Τεκμηρίωση PySimpleGUI , για να χτίσει το αρχείο .exe να εκτελέσετε:

pyinstaller -wF MyGUIProgram.py

Απαντήθηκε 09/10/2018 στις 12:30
πηγή χρήστη

ψήφοι
1

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

Όσο για μια βιβλιοθήκη GUI που λειτουργεί διαγώνια πλατφόρμα, Python είναι Tk / Tcl βιβλιοθήκη widget λειτουργεί πολύ καλά, και πιστεύω ότι είναι αρκετά διαγώνια πλατφόρμα.

Tkinter είναι η διασύνδεση python για Tk / Tcl

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

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

Απαντήθηκε 05/08/2008 στις 23:40
πηγή χρήστη

ψήφοι
0

Μπορείτε να χρησιμοποιήσετε 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 κατά την εκτέλεση

Δείτε την τεκμηρίωση στο appJar χώρο .

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

Απαντήθηκε 08/06/2017 στις 10:21
πηγή χρήστη

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