आवश्यकताएँ में। Tilde का क्या मतलब है (~ =)?


109

में requirements.txtमैं उपयोग कर रहा हूँ एक अजगर पुस्तकालय के लिए, आवश्यकताओं में से एक की तरह निर्दिष्ट किया जाता है:

mock-django~=0.6.10

क्या ~=मतलब है?

जवाबों:


126

इसका मतलब है कि यह पैकेज के नवीनतम संस्करण का चयन करेगा, जो 0.6.10 से अधिक या इसके बराबर है, लेकिन अभी भी 0.6। * संस्करण में है, इसलिए यह उदाहरण के लिए 0.7.0 डाउनलोड नहीं करेगा। यह सुनिश्चित करता है कि आपको सुरक्षा सुधार मिलेंगे, लेकिन बैकवर्ड-कम्पैटिबिलिटी बनाए रखेंगे, अगर पैकेज मेंटेनर सिमेंटिक वर्जनिंग का सम्मान करता है (जो बताता है कि ब्रेकिंग परिवर्तन केवल प्रमुख संस्करणों में होने चाहिए)।

या, पीईपी 440 द्वारा कहा गया है:

किसी दिए गए रिलीज़ पहचानकर्ता VN के लिए, संगत रिलीज़ क्लॉज़, तुलना क्लॉज़ की जोड़ी के बराबर है:

>= V.N, == V.*


3
"लगभग"? क्या इस समानता के लिए कोई अपवाद हैं?
AXO

1
@AXO AFIK, प्री / पोस्ट रिलीज़ संस्करण मिलान के साथ सूक्ष्मताएं हैं। ज्यादातर समय यह मूल उपयोग को प्रभावित नहीं करेगा, जो कि वैसे भी प्रमुख / लघु संस्करण से मेल खाते हैं।
मैक्सिम लोरेंट

14

यह 'संगत रिलीज़' संस्करण निर्दिष्ट है

यह इसके बराबर है: mock-django >= 0.6.10, == 0.6.*और एक संस्करण से मेल खाने का एक अच्छा तरीका है जो संगत होने की उम्मीद है। सादे अंग्रेजी में, यह कहने के लिए थोड़ा सा है: "मुझे नकली-डीजेंगो के एक संस्करण की आवश्यकता है जो कम से कम 0.6.10 के रूप में नया है, लेकिन इतना नया नहीं है कि यह इसके साथ संगत नहीं है।"

यदि आप इस सभी संस्करण संख्या सामान के बारे में निश्चित नहीं हैं, तो PEP440 संस्करण योजना पर एक त्वरित नज़र आपको क्रमबद्ध करनी चाहिए!


7

~ = का अर्थ है एक संगत संस्करण। 0.6.10 और उच्चतर (0.6। *) से कम नहीं।


3

एक संगत रिलीज़ क्लॉज़ में संगत रिलीज़ ऑपरेटर ~ = और एक संस्करण पहचानकर्ता होता है। यह किसी भी उम्मीदवार संस्करण से मेल खाता है जो निर्दिष्ट संस्करण के साथ संगत होने की उम्मीद है।

आप यहाँ और अधिक पढ़ सकते हैं: https://www.python.org/dev/peps/pep-0440/#compatible-release

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