मैं पायथन का उपयोग करके एक सीधे-निष्पादन योग्य क्रॉस-प्लेटफ़ॉर्म GUI ऐप कैसे बना सकता हूं?


263

पायथन कई प्लेटफार्मों पर काम करता है और इसका उपयोग डेस्कटॉप और वेब अनुप्रयोगों के लिए किया जा सकता है, इस प्रकार मैं यह निष्कर्ष निकालता हूं कि मैक, विंडोज और लिनक्स के लिए एक निष्पादन योग्य में संकलित करने का कुछ तरीका है।

समस्या यह है कि मुझे पता नहीं है कि कहां से शुरू करना है या इसके साथ एक जीयूआई कैसे लिखना है, क्या कोई इस पर कुछ प्रकाश डाल सकता है और मुझे सही दिशा में इंगित कर सकता है?

जवाबों:


285

सबसे पहले आपको पायथन बाइंडिंग के साथ कुछ GUI लाइब्रेरी की आवश्यकता होगी और फिर (यदि आप चाहें तो) कुछ प्रोग्राम जो आपकी पायथन स्क्रिप्ट को स्टैंडअलोन एक्जीक्यूटिव में बदल देगा।

पायथन बाइंडिंग (विंडोज, लिनक्स, मैक) के साथ क्रॉस-प्लेटफ़ॉर्म जीयूआई लाइब्रेरी

बेशक, कई हैं, लेकिन सबसे लोकप्रिय जो मैंने जंगली में देखा है वे हैं:

  • Tkinter - Tk GUI टूलकिट पर आधारित (डी-फैक्टो स्टैंडर्ड GUI लाइब्रेरी फॉर पायथन, कमर्शियल प्रोजेक्ट्स के लिए मुफ्त)
  • WxPython - WxWidgets पर आधारित (लोकप्रिय, वाणिज्यिक परियोजनाओं के लिए मुफ्त)
  • क्यू पायथन के लिए पायक्यूटी बाइंडिंग या क्यूटी का उपयोग कर । पूर्व वाणिज्यिक परियोजनाओं के लिए स्वतंत्र नहीं है। उत्तरार्द्ध कम परिपक्व है, लेकिन मुफ्त में इस्तेमाल किया जा सकता है।

पूरी सूची http://wiki.python.org/moin/GuiProgramming पर है

एकल निष्पादन योग्य (सभी प्लेटफ़ॉर्म)

  • PyInstaller - सबसे अधिक सक्रिय (के साथ भी इस्तेमाल किया जा सकता है PyQt)
  • fbs - यदि आपने ऊपर Qt चुना है

एकल निष्पादन योग्य (विंडोज)

  • py2exe - सबसे लोकप्रिय हुआ करता था

एकल निष्पादन योग्य (लिनक्स)

  • फ्रीज - ठीक उसी तरह काम करता है जैसे py2exe लेकिन लक्ष्य लिनक्स प्लेटफॉर्म

एकल निष्पादन योग्य (मैक)

  • py2app - फिर से, py2exe की तरह काम करता है लेकिन Mac OS को लक्षित करता है

19
Py2exe के बजाय विंडोज़ के लिए pyinstaller के बारे में बात करें।
चेंगलोग

8
यह ध्यान देने योग्य है कि 4.5 क्यूटी एलजीपीएल के तहत होगा।
CTT

14
... यही कारण है कि अब आपको PySide का उपयोग करने पर बहुत विचार करना चाहिए जो कि LGPL है। यह PyQt4 के पायथन 2 एपीआई की तुलना में अधिक पायथोनिक है।
क्रिस मॉर्गन

4
आप cx_Freeze भी जोड़ सकते हैं , जो कि क्रॉस-प्लेटफ़ॉर्म है, बनाए रखा गया है और पाइथन 3.x का समर्थन करता है।
fbmd

2
यहाँ किवी का कोई उल्लेख क्यों नहीं है? क्या यह इस सवाल का एक वैध विकल्प नहीं है?
सिलसूर

56

एक अन्य प्रणाली (अभी तक स्वीकार किए गए उत्तर में उल्लेख नहीं किया गया है) PyInstaller है, जो कि py2t परियोजना के लिए काम करती है जब py2exe नहीं होगा। मुझे इसका उपयोग करना आसान लगा।

http://www.pyinstaller.org/

Pyinstaller गॉर्डन मैकमिलन के पायथन इंस्टॉलर पर आधारित है। जो अब उपलब्ध नहीं है।


1
और इस जवाब के लिखे जाने के 3 साल से अधिक समय बाद, pyinstaller STILL पायथन 3 का समर्थन नहीं करता है, और न ही इसे भविष्य के रिलीज के रोडमैप में सूचीबद्ध किया गया है। मेरा मतलब है, AIX और सोलारिस समर्थन वास्तव में पायथन 3 की तुलना में अधिक उपयोगी है?
डेव

11
यह अब पायथन 2.7 और पायथन 3.3, 3.4 और 3.5 का समर्थन करता है।
काटू

4
और अब 3.6 भी।
Rexcirus

14

Py2exe का एक वैकल्पिक उपकरण bbfreeze है जो विंडोज़ और लिनक्स के लिए निष्पादन योग्य बनाता है। यह पी 2 एक्स की तुलना में नया है और अंडे को काफी अच्छी तरह से संभालता है। मैंने पाया है कि यह विभिन्न प्रकार के अनुप्रयोगों के लिए बिना कॉन्फ़िगरेशन के जादुई रूप से बेहतर काम करता है।


11

PyGTK भी है , जो मूल रूप से गनोम टूलकिट के लिए पायथन रैपर है। मैंने अपने दिमाग को टिक्कटर के चारों ओर लपेटना आसान पाया है, जो पहले से जीयूआई प्रोग्रामिंग का कोई ज्ञान नहीं था। यह बहुत अच्छा काम करता है और इसमें कुछ अच्छे ट्यूटोरियल हैं। दुर्भाग्य से विंडोज के लिए अजगर 2.6 के लिए एक इंस्टॉलर नहीं है, और थोड़ी देर के लिए नहीं हो सकता है।


6

चूंकि अब डिफ़ॉल्ट रूप से लगभग हर गैर-विंडोज ओएस पर अजगर स्थापित है, केवल एक चीज जिसे आपको वास्तव में सुनिश्चित करने की आवश्यकता है वह यह है कि आपके द्वारा उपयोग किए जाने वाले सभी गैर-मानक लाइब्रेरी स्थापित हैं।

कहा जा रहा है कि, निष्पादन योग्य बनाने के लिए संभव है कि अजगर इंटरप्रेटर और आपके द्वारा उपयोग किए जाने वाले किसी भी पुस्तकालय में शामिल हों। यह एक बड़ी निष्पादन योग्य बनाने की संभावना है, हालांकि।

MacOS X में पूर्ण स्वसंपूर्ण GUI ऐप्स बनाने के लिए Xcode IDE में समर्थन भी शामिल है। इन्हें OS X चलाने वाले किसी भी उपयोगकर्ता द्वारा चलाया जा सकता है।


6

खुद GUI के लिए:

PyQT बहुत अधिक संदर्भ है।

रैपिड यूजर इंटरफेस को विकसित करने का एक अन्य तरीका वेब ऐप लिखना है, क्या यह स्थानीय रूप से चलता है और ब्राउज़र में ऐप प्रदर्शित करता है।

इसके अलावा, अगर आप lubos hasko द्वारा सुझाए गए टिंकर विकल्प के लिए जाते हैं, तो आप अपने ऐप को पायथन के बिना विंडोज वातावरण पर चलाने के लिए पोर्टेबलपी को आज़माना चाह सकते हैं।


4

मुझे यकीन नहीं है कि यह ऐसा करने का सबसे अच्छा तरीका है, लेकिन जब मैं रूबी जीयूआई ऐप (पायथन नहीं, बल्कि अभी तक। Ex की चिंता कर रहा हूं) के रूप में विंडोज पर तैनात कर रहा हूं, तो मैं सिर्फ एक लिखता हूं। C # में लघु लॉन्चर जो मेरी मुख्य स्क्रिप्ट पर कॉल करता है। यह एक निष्पादन योग्य के लिए संकलित करता है, और मेरे पास एक एप्लिकेशन निष्पादन योग्य है।


@ ब्रायन क्या आपने स्व-निष्पादित जूते ऐप्स के लिए _why की तकनीक देखी है ? यह शायद गैर-जूते कार्यक्रमों के साथ किया जा सकता है।
एडम लाससेक

इन ऐप्स के लिए, मेरा कोई भी उपयोगकर्ता अनाम नहीं है। मुझे पता है कि अगर उनके पास रनटाइम है, और अगर वे नहीं करते हैं, तो मैं इसे उनके लिए स्थापित कर सकता हूं। इस विषय में प्रमुख चिंता यह है कि कमांड प्रॉम्प्ट को खोलने के बिना इन प्रोग्रामों को कैसे लॉन्च किया जाए और प्रोग्राम के नाम से रनटाइम के निष्पादन योग्य टाइप करें।
ब्रायन वॉरशॉ

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

फिर आपको पी 2 एक्स का उपयोग करना चाहिए, उदाहरण के लिए, ऐप को चलाने के लिए आवश्यक सभी फ़ाइलों को एक फ़ोल्डर में लाने के लिए, भले ही उपयोगकर्ता ने अपने पीसी पर अजगर नहीं किया हो (मैं विंडोज़ की बात कर रहा हूं ... ऐप्पल ओएस के लिए कोई ज़रूरत नहीं है एक निष्पादन योग्य फ़ाइल, मुझे लगता है, क्योंकि यह इसे स्थापित करने की आवश्यकता के बिना इसमें अजगर के साथ आता है।

इस फाइल को बनाएं

1) एक setup.py बनाएँ

इस कोड के साथ:

from distutils.core import setup
import py2exe

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

इसे एक फ़ोल्डर में सहेजें

2) अपने प्रोग्राम को सेटअप फोल्डर के उसी फोल्डर में रखें, इस फोल्डर में उस प्रोग्राम को रखें जिसे आप डिस्टर्ब्यूट करना चाहते हैं: es: 4hh.py

ps: फ़ाइल का नाम बदलें (l4h से आप जो भी चाहते हैं, वह एक उदाहरण है)

3) उस फोल्डर से cmd चलाएं (फोल्डर पर, राइट क्लिक करें + शिफ्ट करें और start cmd यहां चुनें)
4) cmd में लिखें:> python setup.py py2exe
5) डिस्टर्ब फोल्डर में वे सभी फाइल्स हैं जिनकी आपको
6 की जरूरत है। इसे ज़िप कर सकते हैं और वितरित कर सकते हैं

Pyinstaller

इसे cmd से स्थापित करें

**

पाइप स्थापित करें pyinstaller

**

उस फ़ोल्डर से सेमी से इसे चलाएं जहां फ़ाइल है

**

pyinstaller file.py

**


2

PySimpleGUI टिंकर को लपेटता है और पायथन 3 और 2.7 पर काम करता है। यह Qt, WxPython और सभी प्लेटफ़ॉर्म के लिए समान स्रोत कोड का उपयोग करके वेब ब्राउज़र में भी चलता है।

आप कस्टम GUI बना सकते हैं जो समान विजेट्स का उपयोग करते हैं, जो आपको 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


1

आपको मैक / विंडोज / लिनक्स के लिए अजगर को संकलित करने की आवश्यकता नहीं है । यह एक व्याख्या की गई भाषा है, इसलिए आपको बस अपनी पसंद के सिस्टम पर पायथन इंटरप्रेटर स्थापित करना होगा (यह सभी तीन प्लेटफार्मों के लिए उपलब्ध है)।

एक GUI लाइब्रेरी जो क्रॉस प्लेटफॉर्म का काम करती है, के लिए Python's Tk / Tcl विजेट लाइब्रेरी बहुत अच्छी तरह से काम करती है, और मेरा मानना ​​है कि पर्याप्त रूप से क्रॉस प्लेटफॉर्म है।

Tkinter Tk / Tcl के लिए अजगर इंटरफ़ेस है

अजगर परियोजना वेबपेज से:

टिक्टर केवल पायथन के लिए एकमात्र GuiProgramming टूलकिट नहीं है। यह हालांकि सबसे अधिक इस्तेमाल किया जाने वाला एक है, और लगभग केवल एक ही है जो यूनिक्स, मैक और विंडोज के बीच पोर्टेबल है


4
तो आप उन लोगों के सिस्टम पर तैनात करने के लिए एक इंस्टॉलेशन पैकेज कैसे बनाएंगे जो सिर्फ 1-स्टेप इंस्टाल चाहते हैं (जैसे विंडोज में सिंगल इंस्टालेशन पैकेज पर डबल-क्लिक)?
क्रेग मैकक्यून

इसके लिए कुछ दृष्टिकोण हैं जो मुझे पता है: आप निश्चित रूप से बैच स्क्रिप्ट में एक इंस्टॉलर लिखेंगे या लक्ष्य प्रणाली के लिए संकलित करेंगे जो आवश्यक फाइलों को कहीं पर छोड़ देगा और प्रक्रिया में आवश्यक लाइब्रेरी और रनटाइम स्थापित करेगा।
जस्टिन स्टैंडर्ड

1
अपने खुद के इंस्टॉल के हिस्से के रूप में पायथन को स्थापित करना थोड़ा फ़िज़ूल होगा, क्योंकि आपको पहले से स्थापित पायथन के गलत संस्करण की संभावना से निपटना होगा। आपको कंधे से कंधा मिलाकर चलना होगा, ताकि आपका एप्लिकेशन पायथन के नए-स्थापित संस्करण तक पहुंच सके, लेकिन कोई भी मौजूदा एप्लिकेशन पायथन के पुराने संस्करण का उपयोग करना जारी रखे। (यानी .py फ़ाइल एसोसिएशन या PATH जैसी चीजों को गड़बड़ किए बिना)
जोनाथन हार्टले

अधिक संभावना है कि आपका इंस्टॉलर पायथन के सही संस्करण के अस्तित्व की जांच करेगा, और यदि यह पाया गया, तो इसका उपयोग करें, अन्यथा इंस्टॉल प्रक्रिया के एक भाग के रूप में अजगर को स्थापित करें।
जस्टिन स्टैंडर्ड

सही - लेकिन वह दूसरा विकल्प 'अन्यथा स्थापित प्रक्रिया के एक भाग के रूप में अजगर को स्थापित करें', ठीक वही है जो मैं बात कर रहा हूं। यह मेरे द्वारा दिए गए कारणों के लिए पूरी तरह से उचित होगा।
जोनाथन हार्टले

0

आप appJarबुनियादी जीयूआई विकास के लिए उपयोग कर सकते हैं ।

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()

दौड़ते समय जीयूआई

AppJar साइट पर प्रलेखन देखें ।

स्थापना pip install appjarकमांड लाइन से की जाती है।


0

!!! किवी !!!

मैं यह देखकर चकित था कि किसी ने किवी का उल्लेख नहीं किया !!!

मैंने एक बार टिंकेटर का उपयोग करके एक परियोजना की है, हालांकि वे वकालत करते हैं कि इसमें बहुत सुधार हुआ है, यह अभी भी मुझे विंडोज़ 98 का ​​अनुभव देता है, इसलिए मैंने किवी को स्विच किया ।

अगर यह मदद करता है तो मैं एक ट्यूटोरियल श्रृंखला का पालन ​​कर रहा हूं ...

किवी कैसी दिखती है, इसका अंदाजा लगाने के लिए, इसे देखें (मैं जिस प्रोजेक्ट पर काम कर रहा हूं):

जिस प्रोजेक्ट पर काम कर रहा हूं

और मैं अब इस पर मुश्किल से एक हफ्ते से काम कर रहा हूँ! कीवी के लाभ आप पूछते हैं? इसकी जाँच करें

मैंने इसे क्यों चुना, इसका कारण यह है कि इसका उपयोग मोबाइल में भी किया जा सकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.