2012-03-02 17 views
13

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

तो मेरी सवाल है, मैं किसी भी स्थापना (सभी निर्भरता और libs पैक कर रहे हैं) के बिना एक पोर्टेबल अजगर डेस्कटॉप अनुप्रयोग बना सकते हैं, यूएसबी से खींच/सीडी यह चलेगा?

(यह महत्वपूर्ण है क्योंकि यह उपयोगकर्ताओं के लिए एक सिरदर्द सी ++ भागो समय पुस्तकालय स्थापित करने के लिए है ...)

धन्यवाद।

+0

आप कहते हैं कि यह उन सी ++ क्रम पुस्तकालय स्थापित करने के लिए के लिए एक सिरदर्द है ... कारण है कि यह शामिल नहीं अपने प्रोग्राम के इंस्टॉलर में? मैंने पाइथन सॉफ्टवेयर को इंस्टॉलेशन के लिए इनो सेटअप का उपयोग करके py2exe के साथ पैक किया है। मेरे पास इंस्टॉलर है जो विजुअल सी ++ रनटाइम को '/ qb' झंडे के साथ पुनर्वितरण योग्य बनाता है ताकि उपयोगकर्ता को कुछ भी करने की आवश्यकता न हो। –

+0

@ श्रृंखला 8217 धन्यवाद। मुझे लगता है कि मैं ऐसा कर सकता हूं, लेकिन मुख्य बिंदु इंस्टॉलर के बिना है; अगर यह पोर्टेबल हो सकता है, अच्छा! – CppLearner

उत्तर

9

आप py2exe साथ इस पद्धति का उपयोग कर सकते हैं: http://www.py2exe.org/index.cgi/SingleFileExecutable

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

वहाँ भी एक उदाहरण है कि py2exe जो एक ही परिणाम प्राप्त करने के NSIS के बजाय Inno Setup का उपयोग करता है के साथ आता है। यह site-packages\py2exe\samples\extending पर स्थापित है।

+0

धन्यवाद। मैंने इसे पढ़ा है, अगर मैं गलत हूं तो कृपया सही करें: इसलिए जब मैं इंस्टॉलर संकलित करता हूं, तो मैं पूरे फ़ोल्डर को दूसरे कंप्यूटर पर कॉपी कर सकता हूं। निष्पादन योग्य चलाएं, यह एक tmp फ़ोल्डर में dlls जैसी उचित फ़ाइलों को उत्पन्न करेगा, जो उपयोगकर्ता को ऐप बंद करने के बाद हटा दिया जाएगा। मेरे आवेदन को दृढ़ता की आवश्यकता है क्योंकि हमारे पास एक एक्सएमएल डेटाबेस है, इसलिए हम रिकॉर्ड्स को नष्ट नहीं करना चाहते हैं। मुझे कैसे पता चलेगा कि टीएमपी में क्या बनाया गया है? धन्यवाद। – CppLearner

+0

@CppLearner सही। "इंस्टॉलर" संकलित करने के बाद, आपको केवल अन्य निष्पादन योग्य को अन्य कंप्यूटर पर जाने की आवश्यकता है "इंस्टॉलर"। जब आप निष्पादन योग्य चलाते हैं, तो यह इसकी सामग्री को अनपैक करता है (एप्लिकेशन exe और आवश्यक DLL फ़ाइलें, आदि), एप्लिकेशन चलाता है, और जब एप्लिकेशन निकलता है तो यह temp फ़ोल्डर को हटा देता है। उदाहरण एनएसआईएस स्क्रिप्ट को संपादित करके आप व्यवहार को नियंत्रित कर सकते हैं। –

+1

@CppLearner आप लगातार डेटा, संग्रहीत जहां इसकी जाने वाले चाहते हैं ... शायद '% HOMEPATH% \ AppData \ MyXMLDB' या कुछ इसी तरह। फिर एप्लिकेशन इसे हमेशा खोज सकता है, भले ही आप इसे कहां से निष्पादित करते हैं। –

3

तुम भी Portable Python कांटा और अपने आवेदन और पुस्तकालयों की जरूरत है शामिल करने के लिए संशोधित कर सकते हैं। यह स्थापना के बिना किसी भी ड्राइव/नेटवर्क स्थान से चलाता है और आप आप 2.xx या 3.xx आधारित अजगर कोर चाहते हैं चुन सकते हैं

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