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

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

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

0
जोड़ा संपादित
विचारों: 2

10 उत्तर

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

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

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

0
जोड़ा

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

एक जीयूआई लाइब्रेरी के लिए जो क्रॉस प्लेटफार्म काम करता है, पाइथन के Tk / Tcl विजेट लाइब्रेरी बहुत अच्छी तरह से काम करता है, और मुझे विश्वास है पर्याप्त रूप से पार मंच है।

Tkinter is the python interface to Tk/Tcl

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

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

0
जोड़ा
इसके लिए मुझे कुछ दृष्टिकोण हैं जिनके बारे में मुझे पता है: आप बैच स्क्रिप्ट में इंस्टॉलर लिखेंगे या लक्ष्य प्रणाली के लिए संकलित होंगे जो आवश्यक फ़ाइलों को किसी जगह पर छोड़ देगा और प्रक्रिया में आवश्यक पुस्तकालयों और रनटाइम्स को स्थापित करेगा।
जोड़ा लेखक Justin Standard, स्रोत
अधिक संभावना है कि आपका इंस्टॉलर पायथन के सही संस्करण के अस्तित्व की जांच करेगा, और यदि इसे पाया जाता है, तो इसका उपयोग करें, अन्यथा इंस्टॉल प्रक्रिया के हिस्से के रूप में पायथन स्थापित करें।
जोड़ा लेखक Justin Standard, स्रोत
तो आप उन लोगों की प्रणालियों पर तैनाती के लिए एक इंस्टॉलेशन पैकेज कैसे बनायेंगे जो सिर्फ 1-चरणीय इंस्टॉल चाहते हैं (उदा। विंडोज़ में एक इंस्टॉलेशन पैकेज पर डबल-क्लिक करें)?
जोड़ा लेखक Craig McQueen, स्रोत
अपने स्वयं के इंस्टॉलेशन के हिस्से के रूप में पाइथन स्थापित करना थोड़ा मुश्किल होगा, क्योंकि आपको पहले से ही पाइथन के गलत संस्करण की संभावना से निपटना होगा। आपको एक तरफ से स्थापित करना होगा, जैसे कि आपका एप्लिकेशन पाइथन के नए-स्थापित संस्करण तक पहुंच सकता है, लेकिन किसी मौजूदा एप्लिकेशन ने पायथन के पुराने संस्करण का उपयोग जारी रखा है। (यानी .py फ़ाइल एसोसिएशन या पैथ जैसी चीज़ों को गड़बड़ किए बिना)
जोड़ा लेखक Jonathan Hartley, स्रोत
ठीक है - लेकिन वह दूसरा विकल्प 'अन्यथा इंस्टॉल प्रक्रिया के हिस्से के रूप में पायथन स्थापित करें', वही है जो मैं बात कर रहा हूं। मेरे द्वारा दिए गए कारणों के लिए यह स्पष्ट रूप से होगा।
जोड़ा लेखक Jonathan Hartley, स्रोत
या बस एक इंस्टॉलर बनाएं जो आपको आवश्यक पुस्तकालयों के साथ एक पायथन वितरण स्थापित करेगा, जैसे कि पाइथन (एक्स, वाई) (केवल विंडोज और लिनक्स के लिए), या एनथॉट कैनोपी एक्सप्रेस (लिनक्स, विंडोज और मैकोज़क्स के लिए)।
जोड़ा लेखक gaborous, स्रोत

मुझे यकीन नहीं है कि यह करने का यह सबसे अच्छा तरीका है, लेकिन जब मैं रूबी जीयूआई ऐप्स को तैनात कर रहा हूं (पायथन नहीं, लेकिन विंडोज़ पर जहां तक ​​.exe का संबंध है) वही समस्या है, मैं बस एक लिखता हूं सी # में लघु लॉन्चर जो मेरी मुख्य लिपि पर कॉल करता है। यह एक निष्पादन योग्य के लिए संकलित करता है, और उसके बाद मेरे पास एक निष्पादन योग्य अनुप्रयोग है।

0
जोड़ा
इन ऐप्स के लिए, मेरे कोई भी उपयोगकर्ता अज्ञात नहीं है। मुझे पता है कि उनके पास रनटाइम है, और यदि वे नहीं करते हैं, तो मैं इसे उनके लिए इंस्टॉल कर सकता हूं। इस विषय में मुख्य चिंता यह है कि कमांड प्रॉम्प्ट खोलने के बिना इन अनुप्रयोगों को लॉन्च करने और प्रोग्राम नाम के बाद रनटाइम के निष्पादन योग्य टाइप करें।
जोड़ा लेखक Brian Warshaw, स्रोत
हम्म, अच्छा लेकिन क्या होगा यदि रूबी रन-टाइम स्थापित नहीं है?
जोड़ा लेखक Kugel, स्रोत
@Brian क्या आपने स्वयं को _why's तकनीक देखा है, शूज़ ऐप निष्पादित करना? यह शायद गैर शूज़ कार्यक्रमों के साथ किया जा सकता है।
जोड़ा लेखक 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

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

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

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

इस कोड के साथ:

distutils.core आयात सेटअप से आयात py2exe

सेटअप (सांत्वना = [ 'l4h.py'])

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

2) अपने प्रोग्राम को setup.py के उसी फ़ोल्डर में रखें इस फ़ोल्डर में उस प्रोग्राम को डालें जिसे आप इसे विचलित बनाना चाहते हैं: es: l4h.py

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

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
जोड़ा

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

http://www.pyinstaller.org/

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

0
जोड़ा
और जवाब देने के 3 साल बाद, लिखा गया था, पाइंस्टॉलर अभी भी पायथन 3 का समर्थन नहीं करता है, न ही यह भविष्य की रिलीज के रोडमैप में सूचीबद्ध है। मेरा मतलब है, क्या AIX और Solaris समर्थन Python 3 से वास्तव में अधिक उपयोगी है?
जोड़ा लेखक Dave, स्रोत
यह पाइथन 2.7 और पायथन 3.3, 3.4 और 3.5 का समर्थन करता है।
जोड़ा लेखक Katu, स्रोत
और 3.6 भी अब।
जोड़ा लेखक Rexcirus, स्रोत

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

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

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

  • 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

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

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

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

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

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

  • py2app - again, works like py2exe but targets Mac OS
0
जोड़ा
Py2exe के बजाय, विंडोज़ के लिए pyinstaller के बारे में बात करें।
जोड़ा लेखक changelog, स्रोत
... यही कारण है कि अब आपको पायसाइड का उपयोग करने पर बहुत अधिक विचार करना चाहिए जो है LGPL। यह PyQt4 के पायथन 2 एपीआई से भी अधिक पाइथोनिक है।
जोड़ा लेखक Chris Morgan, स्रोत
यह ध्यान देने योग्य है कि 4.5 क्यूटी के रूप में एलजीपीएल के तहत होगा।
जोड़ा लेखक CTT, स्रोत
... लेकिन पीईक्यूटी अभी भी जीपीएल है।
जोड़ा लेखक Nicholas Riley, स्रोत
आप cx_Freeze भी जोड़ सकते हैं, जो क्रॉस-प्लेटफॉर्म है, बनाए रखा है, और पाइथन 3 का समर्थन करता है। एक्स।
जोड़ा लेखक fbmd, स्रोत
मैक ओएस एक्स के लिए प्लैटिपस भी एक विकल्प है। sveinbjorn.org/platypus
जोड़ा लेखक svth, स्रोत

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

0
जोड़ा

जीयूआई के लिए खुद:

PyQT is pretty much the reference.

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

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

0
जोड़ा

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

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

चल रहा है जब GUI

ऐपजर साइट पर दस्तावेज़ देखें।

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

0
जोड़ा