क्या कोई महत्वपूर्ण अंतर है
pip install -e /path/to/mypackage
और सेटटापूल संस्करण?
python /path/to/mypackage/setup.py develop
क्या कोई महत्वपूर्ण अंतर है
pip install -e /path/to/mypackage
और सेटटापूल संस्करण?
python /path/to/mypackage/setup.py develop
जवाबों:
setup.py
सीधे कॉल से बचने की कोशिश करें , यह ठीक से पाइप को नहीं बताएगा कि आपने अपना पैकेज स्थापित किया है।
के साथ pip install -e
:
स्थानीय परियोजनाओं के लिए, "SomeProject.egg-info" निर्देशिका प्रोजेक्ट पथ के सापेक्ष बनाई गई है। यह सिर्फ उपयोग करने पर एक फायदा है
setup.py develop
, जो वर्तमान कार्यशील निर्देशिका के सापेक्ष सीधे "अंडा-जानकारी" बनाता है।
अधिक: डॉक्स
साथ ही सेटपूल के डॉक्स भी पढ़ें ।
एक और अंतर: pip install -e
पहिया का उपयोग करता है जबकि
python setup.py develop
इसका उपयोग नहीं करता है।
के साथ install
, आप उसी व्यवहार का उपयोग करके प्राप्त कर सकते हैं
pip install -e /path/to/package --no-use-wheel
पहियों पर अधिक जानकारी: अजगर पहियों
--no-use-wheel
बहिष्कृत किया गया के पक्ष में--no-binary :all:
एक और अंतर यह है कि पक्ष हो सकता है pip install -e
कि अगर अपनी परियोजना में निर्भरता है install_requires
में setup.py
है, तो pip install -e .
निर्भरता पिप के साथ, स्थापित करता है, जबकि python setup.py develop
साथ स्थापित कर सकते हैं easy_install
जैसा कि ऊपर उल्लेख 'अंडे की जानकारी':, और समस्याओं फिर से हो सकती है। जब कस्टम git URL के साथ install-requires
उपयोग किया dependency_links
जाता है, संलग्न अंडे पहचानकर्ताओं के साथ, यह विशेष रूप से कष्टप्रद हो सकता है।
pip install -e .
, तो यह अनिवार्य रूप से आपकी वर्किंग कॉपी को इंगित करने के लिए प्रासंगिक पायथन साइट-संकुल निर्देशिका में एक सिमलिंक बनाता है। चूंकि कोड परिवर्तन उस कार्यशील प्रतिलिपि में किए जाते हैं, यह "इंस्टॉल किए गए" संस्करण में तुरंत परिलक्षित होता है, इसलिए आपको जाते ही इंस्टॉलेशन कमांड को फिर से चलाने की आवश्यकता नहीं है। यह मुख्य रूप से एक भंडार में विकसित करने के लिए उपयोगी है जो एक संस्थापित पैकेज का प्रतिनिधित्व करता है, लेकिन उदाहरण के लिए केवल पूर्ण आयात के साथ मॉड्यूल के कुछ संग्रह लिखने के लिए भी उपयोगी हो सकता है, आदि
फिर भी एक और अंतर: जब आप python setup.py develop
एक ऐसे संस्करण के लिए दौड़ते हैं , जो पूर्व-रिलीज़ माना जाता है (शायद इसलिए कि आप इसे किसी रिलीज़ से जाँच नहीं होने पर एक git क्लोन से चला रहे हैं), तो आप अपनी निर्भरता के पूर्व-रिलीज़ की स्थापना को सक्षम करेंगे । दूसरी ओर, यदि आप ये पूर्व-रिलीज़ चाहते हैं, तो आपको स्पष्ट रूप pip install --editable
से पास करना होगा --pre
।
( गलती से उपयोग किए गए पूर्व-रिलीज़ के साथ CI लॉग देखें और यहां एक निश्चित बिल्ड से तुलना करें ।)