2011-03-02 9 views
11

मैं विकसित सॉफ्टवेयर के निर्भरताओं को ट्रैक और प्रबंधित करने के लिए कौन से टूल्स या सर्वोत्तम प्रथाएं उपलब्ध हैं? मैं पाइथन/डीजेगो का उपयोग कर रहा हूं, और आज तक मेरी सभी सॉफ्टवेयर आवश्यकताएं खुली स्रोत हैं।आवेदन निर्भरताओं के प्रबंधन के लिए उपकरण/सर्वोत्तम प्रथाओं?

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

(बेहतर कुछ ऐसा होगा जो मुझे तैनाती के लिए तैयार होने पर एप्लिकेशन के लिए सर्वर स्थापित करने में मदद करेगा। फिर भी बेहतर कुछ ऐसा होगा जो मुझे http और dns नाम सर्वर का समर्थन करने के लिए उपयोग करता है ऐप। लेकिन अफवाह यह है कि कठपुतली उस तरह की चीज के लिए एक उपकरण है।)

उत्तर

18

pip और virtualenv का उपयोग करें। virtualenv के साथ, आप "वर्चुअल वातावरण" बना सकते हैं जिसमें आपके सभी पायथन पैकेज स्थानीय निर्देशिका में स्थापित हैं। pip install -r के साथ, आप एक विशिष्ट आवश्यकता फ़ाइल में सूचीबद्ध सभी संकुल को स्थापित कर सकते हैं।

असहज उदाहरण:

virtualenv /path/to/env --no-site-packages --unzip-setuptools # create virtual environment 
source /path/to/env/bin/activate # activate environment 
easy_install pip # install pip into environment 
source /path/to/env/bin/activate # reload to get access to pip 
pip install -r requirements.txt 

कहाँ requirements.txt इस तरह लाइनों में शामिल हैं:

django==1.3 

इस बारे में महान बात यह है कि requirements.txt दोनों प्रलेखन के रूप में और स्थापना प्रक्रिया के भाग के रूप में कार्य करता है, इसलिए वहाँ है दोनों को सिंक्रनाइज़ करने की आवश्यकता नहीं है।

+0

सहमत, एक अपडेट: आप setuptools का उपयोग करके अपने स्वयं के पीपी पैकेज बना सकते हैं, और वे अपनी निर्भरताओं को सूचीबद्ध कर सकते हैं। यदि आपका स्वयं का कोड बेस बहुत बड़ा हो जाता है तो आप इसे एक दूसरे पर निर्भर स्वतंत्र सेटअप टोल पैकेज के रूप में बना सकते हैं। –

+1

क्या होगा यदि एक या कुछ निर्भरताएं आपके द्वारा लिखे गए वितरण हैं लेकिन पीआईपी में प्रकाशित नहीं करना चाहते हैं? – Santa

+2

@ सांता: आप केवल अपने स्वयं के आंतरिक रेपो को यूआरएल दे सकते हैं, या यहां तक ​​कि किसी सर्वर पर एक ज़िप किए गए पैकेज को भी दे सकते हैं। –

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

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