2012-10-01 11 views
7

में लिखा गया मेरा प्रश्न प्लेटफ़ॉर्म (मैक/लिनक्स/विंडोज) में जीयूआई ऐप वितरित करने की आसानता के बारे में है, और मैं उस व्यक्ति को जानना चाहता हूं जो उपयोगकर्ता की नौकरी को आसान बनाता है ।पायथन जीयूआई ऐप वितरण: WxPython, TKinter या QT

मेरे वर्तमान समझ के साथ कि Tkinter एप्लिकेशन उपयोगकर्ताओं (स्थापित करने के लिए), क्योंकि जब तक उपयोगकर्ता उसे बॉक्स में एक Python स्थापित किया गया है, मेरे अनुप्रयोग है कि बॉक्स पर चलने के लिए तैयार हो जाना चाहिए के लिए सबसे आसान है।

wxPython या pyQT में लिखित जीयूआई ऐप के लिए, उपयोगकर्ता को पहले अपने बॉक्स में wxwidget या QT इंस्टॉल करने की आवश्यकता है, जो एक अतिरिक्त चरण है, और फिर मेरा जीयूआई ऐप इंस्टॉल करें। (लेकिन मेरे उबंटू बॉक्स में WxWidget लाइब्रेरीज़ और क्यूटी लाइब्रेरी डिफ़ॉल्ट रूप से स्थापित प्रतीत होते हैं, क्या यह मानदंड है कि केवल मानक या सिर्फ उबंटू डिस्ट्रो उपयोगकर्ताओं के लिए अधिक अनुकूल है? मुझे लगता है कि विंडोज और मैक शायद उन्हें डिफॉल्ट द्वारा प्रदान नहीं करते हैं, यानी उपयोगकर्ताओं को चाहिए उन्हें एक अतिरिक्त चरण के रूप में डाउनलोड और स्थापित करने के लिए)

+2

कोई गारंटी नहीं कि tkinter उपलब्ध सिर्फ इसलिए कि अजगर है हो जाएगा नहीं है। यह एक विस्तार मॉड्यूल है, और इसलिए इसे एक अलग पैकेज में विभाजित किया जा सकता है। मैनड्रिवा लिनक्स वितरण यह करता है, और शायद अन्य लोग भी हैं। – ekhumoro

उत्तर

8

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

यदि आपका लक्षित बाजार लिनक्स है, तो आप केवल डेब या आरपीएम पैकेज बना सकते हैं और यह आपके आवेदन के लिए निर्भरताओं का ख्याल रखेगा।

विंडोज और मैक (और भी लिनक्स यदि आप इच्छुक हैं तो) अपने आवेदन के साथ अजगर दुभाषिया बंडल सकता है और यह एक देशी निष्पादन योग्य प्रारूप में पुस्तकालयों है इस तरह के .exe के रूप में या .elf cx_freeze तरह पुस्तकालयों का उपयोग कर के लिए, py2exe और py2app। एक बार ऐसा करने के बाद, आपके उपयोगकर्ता को python या आपके किसी भी पुस्तकालय को स्थापित करने की आवश्यकता नहीं होगी।

+6

[PyInstaller] (http://www.pyinstaller.org/) मल्टीप्लेटफार्म है और पीईक्यूटी, WxPython आउट-ऑफ-द-बॉक्स – jfs

+0

जैसे कई तृतीय पक्ष पुस्तकालयों का समर्थन करता है PyInstaller भी बहुत अच्छा काम करता है। – prabu

4

टिंकर एकमात्र ऐसा है जो पायथन के साथ शामिल है। WxPython और pyQT को WxWindows या QT लाइब्रेरी और दोनों पर WxPython या pyQT लाइब्रेरी सिस्टम पर स्थापित करने की आवश्यकता है।

हालांकि, रुपये बहुत अच्छा नहीं लग रहा है। यदि आप पहले ही उपयोगकर्ता को पायथन इंस्टॉल कर रहे हैं, तो आप उन्हें पुस्तकालयों को भी इंस्टॉल कर सकते हैं। (या हो सकता है कि इंस्टॉलर या कुछ शामिल हो।)

+0

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

+3

इसके अलावा, Tkinter की नई ttk उप-लाइब्रेरी के साथ (पायथन 2.7+ में उपलब्ध है या http: //pypi.python पर उपलब्ध है।संगठन/पीपीआई/पीईटीके), आप टिंकर ऐप्स को बहुत अच्छे लग सकते हैं। –

2

यदि ऐप क्रॉस-प्लेटफ़ॉर्म होने जा रहा है तो मैं WxWidgets (wxpython) का सुझाव दूंगा। मैंने इसे कई बार इस्तेमाल किया है और यह कभी भी कोई समस्या नहीं रही है।

फिर भी, आपको विंडोज, मैक और लिनक्स के लिए विभिन्न इंस्टॉलर बनाना चाहिए। लिनक्स में, निर्भरताओं का ख्याल रखने के लिए .deb या .rpm का उपयोग करें।

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

चेक में अधिक जानकारी के लिए इस लिंक: http://www.py2exe.org/

+1

मुझे लगता है कि wxwidgets चुनने के बारे में टिप्पणी यहां से बाहर है। सवाल यह नहीं है कि कौन सा टूलकिट सबसे अच्छा है, यह तैनाती विकल्पों के बारे में है। "एक्स" चुनने के बारे में सवाल यह है कि जब सवाल "एक्स" चुनने के बारे में नहीं है, तो उसे वोट-वोट और डाउन-वोट आमंत्रित कर सकते हैं क्योंकि कोई भी wxPython पसंद या नापसंद करता है। मुझे लगता है कि अगर आप तैनाती के विषय पर फंस गए तो प्रश्न बेहतर होगा। हालांकि, आप विशेष रूप से कह रहे हैं कि WxPython को तैनात करना आसान है, इस मामले में आपको क्यों समझाया जाना चाहिए। –