2016-06-04 6 views
17

3.5.0 रिलीज के साथ, Python.org ने एम्बेड करने योग्य ज़िप फ़ाइल के रूप में वितरण वितरण पेश किया है।पायथन एम्बेड करने योग्य ज़िप

दुर्भाग्यवश ज़िप फ़ाइल एक सहायता फ़ाइल के बिना आता है (यहां तक ​​कि एक रीडेम भी नहीं)। Python.org पर download page बस इसे डाउनलोड के बीच सूचीबद्ध करता है।

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

मैंने महसूस किया कि यह get-pip.py साथ पिप स्थापित करने के लिए और, धन्यवाद रंज के लिए संभव है, यह कई अन्य आवेदन संकुल जोड़ने के लिए एक हवा है, हालांकि मैं अभी भी Tkinter जोड़ने के लिए (अपने खोल के अनुसार स्लैश समायोजित) में असमर्थ हूँ:

curl https://www.python.org/ftp/python/3.x.x/python-3.x.x-embed-amd64.zip > epython.zip 
unzip -o epython.zip -d env1 
curl -L https://bootstrap.pypa.io/get-pip.py>env1/get-pip.py 
env1/python env1/get-pip.py 

जोड़े आपको क्या चाहिए, जैसे django:

env1/python -m pip install django 

आकार (3.5.1-64 के लिए 6.5 मेगा), मुझे लगता है कि यह अलग वातावरण बनाने के लिए एक साधन के रूप में सुविधाजनक हो सकता है को देखते हुए ।

वास्तव में सामान्य अजगर documentation का कहना है कि

एम्बेडेड वितरण (लगभग) पूरी तरह से उपयोगकर्ता के सिस्टम से अलग है, वातावरण चर, सिस्टम रजिस्ट्री सेटिंग शामिल हैं स्थापित पैकेज

को देखते हुए यह, विंडोज़ में अब दो पृथक पायथन वातावरण हैं, दूसरा मानक Virtualenv है। Virtualenv में एक ही प्रक्रिया इस प्रकार की तरह है:

virtualenv env2 

और Django के लिए यह होगा:

env2/Scripts/python -m pip install django 

env1 और env2 की सामग्री की तुलना करना, वे एक ही फाइल को दिखाई देते हैं। केवल महत्वपूर्ण अंतर Tkinter1 है, जो कि डेस्कटॉप ऐप्स के लिए कहीं भी महत्वपूर्ण नहीं है।

पायथन वर्चुअल और पाइथन एम्बेड करने योग्य के बीच क्या अंतर है?

विशेष रूप से, एम्बेड किए गए ज़िप (env1) और वर्चुअलनव (env2) के साथ बनाए गए पृथक वेब ऐप के बीच अंतर क्या है?

+0

जैसा ऊपर बताया गया है, एम्बेड करने योग्य पायथन में कोई टिंकर नहीं है। यदि आप जानते हैं कि कैसे करें, कृपया [यहां] जवाब दें (http://stackoverflow.com/q/37710205/1851270)। – antonio

उत्तर

6

जैसा कि आप documentation से देख सकते हैं, यह मुख्य रूप से एमएस-विंडोज़ पर पायथन आधारित अनुप्रयोगों को चलाने और एप्लिकेशन में पायथन को एम्बेड करने के लिए है। जैसा कि आप देख सकते हैं, उन्होंने tkinter छोड़ दिया। शायद आकार को कम रखने के लिए?

इसे एक virutualenv से तुलना करना ज्यादा समझ में नहीं आता है, मुझे लगता है। उनके पास पूरी तरह से अलग-अलग मामलों का उपयोग है।

एमएस-विंडोज़ दुनिया में, अनुप्रयोगों को आम तौर पर मोनोलिथिक स्वतंत्र संस्थाओं के रूप में वितरित किया जाता है। इसके विपरीत, मूल रूप से प्रत्येक यूनिक्स स्वाद में एक कार्य पैकेज प्रबंधन प्रणाली होती है जो दूसरों पर निर्भर पैकेजों को आसान बनाता है।इसलिए यदि आप यूनिक्स में एक पायथन-आधारित ऐप इंस्टॉल करते हैं, तो पैकेज प्रबंधन प्रणाली मूल रूप से आपके लिए पाइथन स्थापित करेगी यदि यह अभी तक इंस्टॉल नहीं है। एमएस-विंडोज़ पर यह काम नहीं करता है। एमएस-विंडोज़ के लिए कई पायथन वितरण बढ़ गए हैं क्योंकि (तकनीकी कारणों से) एमएस-विंडोज़ पर सामग्री को संकलित और स्थापित करना दर्दनाक[1][2][3] यूनिक्स की तुलना में है। तो एक एम्बेडेबल पायथन होने से उन लोगों के लिए अर्थ हो सकता है जो पाइथन-आधारित प्रोग्राम वितरित करना चाहते हैं या जो अपने आवेदन में पायथन को एम्बेड करना चाहते हैं।

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

+0

धन्यवाद, यह पुष्टि करता है कि यह _ "वितरण (लगभग) पूरी तरह से उपयोगकर्ता के सिस्टम से पृथक है, जिसमें पर्यावरण चर, सिस्टम रजिस्ट्री सेटिंग्स और स्थापित संकुल शामिल हैं।" _ मेरा दूसरा बिंदु समझ में आता है। – antonio

+2

@antonio यह उत्तर बहुत अधिक जगह है (हालांकि मुझे कैनोपी या एनाकोंडा समर्थन के बारे में पता नहीं है)। शायद अधिक स्पष्ट हो सकता है कि वर्चुअलएन्व का उपयोग * स्थापित संकुल * को अलग करने के लिए किया जाता है, जबकि एम्बेड करने योग्य पायथन का उपयोग पूरे पायथन रनटाइम * को अलग करने के लिए किया जाता है। जब आप रनटाइम साझा कर सकते हैं लेकिन इंस्टॉल किए गए पैकेज नहीं (अधिकांश वेब ऐप्स इस श्रेणी में आते हैं) और एम्बेड करने योग्य पायथन जब आप वैश्विक इंस्टॉल साझा नहीं करना चाहते हैं (यह बहुत सारे डेस्कटॉप ऐप्स के लिए समझ में आता है)। एक विकास परिप्रेक्ष्य से, एम्बेड करने योग्य संस्करण का उपयोग शायद कुछ और परेशानी है। – jpmc26

+0

@ jpmc26: मुझे लगता है कि वे दोनों प्रत्येक पर्यावरण के लिए एक अलग रनटाइम का उपयोग करते हैं। या आप वर्चुअलनव विकल्प के बारे में बोल रहे हैं [बिन/पायथन के बिना वर्चुअलएन्व का उपयोग करना] (https://virtualenv.pypa.io/en/stable/userguide/#using-virtualenv-without-bin-python)? – antonio

संबंधित मुद्दे