2011-09-12 3 views
10

टीएल अपडेट करें; डीआर मुझे एक मॉड्यूल चाहिए जो चुपचाप पृष्ठभूमि में मेरी स्क्रिप्ट को स्वचालित रूप से अपडेट करेगा।स्वचालित रूप से पाइथन स्क्रिप्ट

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

मैं यह स्वचालित रूप से मेरी एप्लिकेशन को अपडेट करने, गूगल क्रोम, की तरह चुपचाप पृष्ठभूमि में, स्वचालित रूप से करना चाहते हैं। क्या कोई पुस्तकालय है जो मुझे पहले से ही ऐसा करने की अनुमति देता है? यदि नहीं, तो पीआईपी/वितरित मॉड्यूल का उपयोग करने के लिए इसका एक सीधा तरीका है?

+0

fyi - pip sudo/admin privs का उपयोग कर सिस्टम निर्देशिका में स्थापित करता है, इसलिए उपयोगकर्ताओं को – jterrace

+0

अपडेट करने के लिए विशेषाधिकार नहीं हो सकते हैं। क्या इसका उपयोग उपयोगकर्ता के होमएडर में कहने के लिए किया जा सकता है (कहें, मेरे ~/.myCLIapp /) के तहत? सबसे बुरे मामले में, मैं निश्चित रूप से वर्चुअलenv स्थापित कर सकता था? –

उत्तर

1

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

+2

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

+0

मैंने इस तकनीक का उपयोग अतीत में सफलतापूर्वक सरल लिपियों, वाइल्डक के लिए किया है। पॉल सही है कि इसमें निर्भरताओं के साथ समस्याएं हैं। – syrion

1

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

1

पिप पहले से ही स्थापित आप के लिए काम करता है, यही कारण है कि तुम सिर्फ os.system("pip install -U myscript") स्क्रिप्ट स्टार्टअप पर ऐसा नहीं कर सकते? यह थोड़ी गंदा है, लेकिन गैर डेवलपर्स के लिए पीआईपी के माध्यम से वितरित कर रहा है।