यहाँ कुछ सामान्य हैं। जब तक स्पष्ट रूप से उल्लेख नहीं किया जाता है, नीचे सूचीबद्ध सभी परियोजनाओं को मेरे अंतिम संपादन (जनवरी 2020) के रूप में सक्रिय रूप से बनाए रखा जा रहा है।
यदि आपने स्वयं को कितनी बार अद्यतन किया है, तो मैं उनकी संबंधित वेबसाइटों, रेपो और PyPi सूचियों के लिंक भी शामिल करता हूँ।
इसके अलावा, जब तक अन्यथा उल्लेख नहीं किया जाता है, नीचे सूचीबद्ध सभी प्रोग्राम विशेष रूप से उस ऑपरेटिंग सिस्टम के लिए एक exe का उत्पादन करेंगे जो इसमें चल रहा है। इसलिए, उदाहरण के लिए, विंडोज में Pyinstaller चलाने से विंडोज exe का उत्पादन होगा, लेकिन लिनक्स में Pyinstaller चलाने से लिनक्स exe का उत्पादन होगा। यदि आप कई ऑपरेटिंग सिस्टम के लिए एक exe का उत्पादन करना चाहते हैं, तो आपको वर्चुअल मशीनों का उपयोग करना होगा या वाइन जैसी किसी चीज़ का उपयोग करना होगा ।
निम्नलिखित कार्यक्रम सभी समान रूप से काम करते हैं - वे पायथन और आपके कार्यक्रम को एक साथ जोड़ते हैं, प्रभावी रूप से उन्हें एक निष्पादन योग्य बनाने के लिए संयोजन करते हैं।
PyInstaller:
- लिंक्स : वेबसाइट || रेपो || PyPi
- समर्थन करता है : विंडोज, मैक और लिनक्स पर पायथन 2.7 और पायथन 3.4 - 3.7।
cx_Freeze:
- लिंक्स: वेबसाइट || रेपो || PyPi
- समर्थन करता है: विंडोज, मैक और लिनक्स पर पायथन 2.7 और 3.5 - 3.8।
py2app:
- लिंक्स: वेबसाइट || रेपो || PyPi
- समर्थन करता है: केवल मैक पर पायथन 2.7 और 3.3 (?) - 3.7 (?)।
- नोट: मेरे अंतिम संपादन के अनुसार, मैं pypp द्वारा समर्थित पायथन संस्करणों की सटीक सीमा को निर्णायक रूप से निर्धारित करने में असमर्थ रहा हूं। नवीनतम रिलीज में पायथन 3.7 का समर्थन किया गया है।
नोट: इस पोस्ट के पूर्व संस्करणों में py2exe ( रेपो ) और बीबफ्रीज ( रेपो ) के लिए राइट-अप शामिल थे । दोनों परियोजनाओं को इस सूची से हटा दिया गया है: उन्होंने कई वर्षों से कोई गतिविधि नहीं देखी है और वे पूरी तरह से अस्वीकार्य प्रतीत होते हैं। पुराने राइटअप के लिए संपादित इतिहास देखें।
बेशक, यह काम करने का एकमात्र तरीका नहीं है:
pynsist:
- लिंक्स: वेबसाइट || रेपो || PyPi
- समर्थन करता है: सभी पायथन संस्करण? नोट - केवल विंडोज इंस्टालर बनाएंगे ।
अन्य नोट:
Pynsist अपने आवेदन के साथ किसी भी मनमाने पायथन संस्करण को एक साथ बंडल करने का समर्थन करता है। हालाँकि, टूल को चलाने के लिए Python 3.5+ की आवश्यकता होती है।
Pynsist आपके प्रोग्राम के लिए एक Windows इंस्टॉलर बनाएगा जो सीधे आपके कोड के साथ बंडल करने के बजाय उपयोगकर्ता के कंप्यूटर पर Python स्थापित करेगा और आपके पायथन स्क्रिप्ट से लिंक करने वाले शॉर्टकट बनाएगा। यद्यपि यह प्रोग्राम केवल विंडोज इंस्टालर का उत्पादन करता है, यह प्रतीत होता है कि आप अभी भी मैक और लिनक्स कंप्यूटर पर Pynsist चला सकते हैं।
Nuitka:
- लिंक्स: वेबसाइट || रेपो (गितुब दर्पण) || PyPi
- समर्थन करता है: विंडोज, मैक और लिनक्स पर पायथन 2.6 - 2.7 और पायथन 3.3 - 3.7।
- अन्य नोट्स: नुत्का शाब्दिक रूप से आपके पायथन कोड को संकलित करेगा और आपके कोड को गति देने के लिए प्रयास करने के लिए और अन्य परियोजनाओं के विपरीत एक exe (जैसा कि अन्य परियोजनाओं, जिसमें केवल पायथन शामिल हैं) का उत्पादन करेगा। एक साइड इफेक्ट के रूप में, आपको एक आसान एक्सई भी मिलेगा जिसे आप वितरित कर सकते हैं। ध्यान दें कि आपको अपने सिस्टम पर C ++ कंपाइलर उपलब्ध होना चाहिए।
cython:
- लिंक्स: वेबसाइट || रेपो || PyPi
- समर्थन करता है: विंडोज, मैक और लिनक्स पर पायथन 2.6 - 2.7 और पायथन 3.2 - 3.8।
- अन्य नोट: साइथन नूत्का के समान है जिसमें यह पायथन संकलक है। हालाँकि, अपने कोड को सीधे संकलित करने के बजाय, वह इसे C पर संकलित करेगा। आप फिर उस C कोड को ले सकते हैं और अपने कोड को exe में बदल सकते हैं । आपको अपने सिस्टम पर C कंपाइलर उपलब्ध करवाना होगा।
मेरी व्यक्तिगत प्राथमिकता PyInstaller का उपयोग करना है क्योंकि मेरे लिए उठना और दौड़ना सबसे आसान था, यह कई लोकप्रिय पुस्तकालयों जैसे कि सुन्न या pygame के साथ अच्छी तरह से काम करने के लिए डिज़ाइन किया गया था, और विभिन्न OSes और पायथन संस्करणों के साथ काफी अनुकूलता है।
हालाँकि, मैंने बहुत अधिक कठिनाई के बिना cx_Freeze का उपयोग करके सफलतापूर्वक विभिन्न एक्सईज़ का निर्माण किया है, इसलिए आपको उस प्रोग्राम को आज़माने पर भी विचार करना चाहिए।
मुझे अभी तक व्यापक रूप से स्त्री-रोग विशेषज्ञ, नुत्का या साइथन की कोशिश करने का मौका नहीं मिला है, लेकिन वे बहुत दिलचस्प और अभिनव समाधानों की तरह लगते हैं। यदि आप कार्यक्रमों के पहले समूह का उपयोग करके परेशानी में हैं, तो इन तीनों में से किसी एक को आज़माना सार्थक हो सकता है। चूंकि वे मौलिक रूप से अलग-अलग काम करते हैं तो Pyinstaller / cx_freeze-style प्रोग्राम, वे उन विषम धार मामलों में सफल हो सकते हैं जहां पहला समूह विफल रहता है।
विशेष रूप से, मुझे लगता है कि अपने कोड को पूरी तरह से वितरित करने के पूरे मुद्दे को दरकिनार करने का एक अच्छा तरीका है,: मैक और लिनक्स में पहले से ही पायथन के लिए मूल समर्थन है, और बस विंडोज पर पायथन स्थापित करना वास्तव में सबसे अच्छा समाधान हो सकता है। (नकारात्मक पक्ष यह है कि अब आपको पायथन + लाइब्रेरी स्थापित करने के कई संस्करणों को लक्षित करने के बारे में चिंता करने की आवश्यकता है)।
नुत्का और साइथन (मेरे सीमित अनुभव में) काफी अच्छा काम करते हैं। फिर से, मैंने उन्हें बड़े पैमाने पर खुद का परीक्षण नहीं किया है, और इसलिए मेरा मुख्य अवलोकन यह है कि वे एक exe का उत्पादन करने में अधिक समय लेते हैं, फिर "फ्रीज" शैली के कार्यक्रम करते हैं।
यह सब कहा जा रहा है, अपने पायथन कार्यक्रम को एक निष्पादन योग्य में परिवर्तित करना जरूरी नहीं कि आपके कोड को वितरित करने का एकमात्र तरीका है। अन्य विकल्प क्या उपलब्ध हैं, इसके बारे में अधिक जानने के लिए, निम्नलिखित लिंक देखें: