मैं इसे पाइप-इंस्टॉल करने योग्य बनाने के लिए एक अजगर आवेदन को कैसे पैकेज करूं?


95

मैं अपने खाली समय में एक फुट-टिपिंग प्रतियोगिता के लिए एक django एप्लिकेशन लिख रहा हूं जो हम काम पर चल रहे हैं। मुझे लगा कि मैं इस समय का बुद्धिमानी से उपयोग करूंगा, और virtualenv, पाइप, पैकेजिंग, django 1.3 पर गति प्राप्त करने के लिए, और आसानी से पुनर्वितरित आवेदन कैसे लिखना है। अब तक सब ठीक है।

मैं पैकेजिंग वाले हिस्से में हूं। उदाहरण के लिए GitHub पर बहुत सारे django ऐप्स को ज्यादातर उसी तरह से (लगभग) बंडल किया जाता है। मैं उदाहरण के रूप में django-uni- फॉर्म का उपयोग करूंगा ।

एक धारणा जो मैं बना रहा हूं, वह है MANIFEST.inऔर setup.pyकेवल आवश्यक टुकड़े हैं जिन्हें पाइप को अपना काम करने की आवश्यकता है। क्या वो सही है? यदि मेरी धारणा गलत है, तो अन्य घटक क्या आवश्यक हैं?

क्या आमतौर पर आवश्यक पैकेजिंग फाइलें उत्पन्न होती हैं, या वे हाथ से तैयार की जाती हैं? क्या निर्भरता का वर्णन किया जा सकता है और फिर स्थापित भी किया जा सकता है? मेरा आवेदन निर्भर करता है django-uni-forms, और मैंने इसे एक में सूचीबद्ध किया हैrequirements.txt अपने ऐप के भीतर फ़ाइल जिसे मैं निर्भरता स्थापित करने के लिए उपयोग करता था; लेकिन क्या ऐसा कुछ है जिसकी पैकेजिंग प्रणाली देखभाल कर सकती है?

मेरे आवेदन को इस तरह से पैकेज करने के लिए मुझे क्या कदम उठाने की आवश्यकता है, ताकि पाइप इसे और किसी भी निर्भरता को स्थापित करने में सक्षम हो?

जवाबों:


88

हाँ, MANIFEST.inऔरsetup.py पर्याप्त होना चाहिए।

इस ब्लॉग पोस्ट में वास्तव में इस विषय पर कुछ अच्छी जानकारी है: एक Django पुन: प्रयोज्य अनुप्रयोग की पैकेजिंग

और यहां एक और अच्छा, विस्तृत अवलोकन है जिसने मुझे बहुत मदद की: पायथन पैकेजिंग उपयोगकर्ता गाइड

विशेष रूप से आपकी स्टैटिक फाइल्स (टेम्प्लेट) को शामिल करने की युक्तियां महत्वपूर्ण हैं क्योंकि यह पहली बार में स्पष्ट नहीं हो सकता है।

और हां, आप setup.pyअपने ऐप में इंस्टॉल करते समय अपने आप आवश्यक पैकेज निर्दिष्ट कर सकते हैं ।

उदाहरण के लिए:

    install_requires = [
        'django-profiles',
        'django-uni-forms',
    ],

जाहिर है अब हमारे पास दो स्थान हैं जहां निर्भरता परिभाषित की गई है, लेकिन इसका मतलब यह नहीं है कि इन सूचनाओं को डुप्लिकेट किया गया है: setup.py vs आवश्यकताएँ.txt

इस सेटअप के साथ आपका पैकेज इंस्टॉल करने योग्य होना चाहिए pip


जैसा कि पियरे ने टिप्पणी में उल्लेख किया है, अब Django के आधिकारिक दस्तावेज में एक प्रासंगिक अनुभाग भी है: अपने ऐप की पैकेजिंग करें

और फिर यह "पूरी तरह से अधूरा" गाइड है, जो वास्तव में पैकेजिंग पर एक महान अवलोकन देता है और PyPI को एक पैकेज अपलोड करता है: अपने प्यार का श्रम साझा करना: PyPI त्वरित और गंदा


4
अब यह भी बताया गया है कि आधिकारिक डॉक्स में एक Django ऐप को कैसे पैकेज किया जाए
पियरे डे लेसिन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.