अजगर उपकरण है कि पैकेज और परियोजनाओं का विवरण देने में इस्तेमाल किया जा सकता का एक भ्रामक इतिहास रहा है: इन में शामिल distutilsस्टैंडर्ड लाइब्रेरी में, distribute, distutils2, और setuptools(और शायद अधिक)। ऐसा प्रतीत होता है कि distributeऔर distutils2इसके पक्ष में बंद कर दिया गया था setuptools, जो दो प्रतिस्पर्धी मानकों को छोड़ देता है।
मेरी समझ से setuptoolsकहीं अधिक विकल्प (जैसे निर्भरता, परीक्षण, आदि की घोषणा करना) प्रदान करता है distutils, हालांकि यह पायथन मानक पुस्तकालय (अभी तक?) में शामिल नहीं है।
अजगर पैकेजिंग उपयोगकर्ता गाइड [ 1 ] अब सिफारिश की गई है:
setuptoolsपरियोजनाओं को परिभाषित करने और स्रोत वितरण बनाने के लिए उपयोग करें ।
और बताते हैं:
यद्यपि आप
distutilsकई परियोजनाओं के लिए शुद्ध उपयोग कर सकते हैं , लेकिन यह अन्य परियोजनाओं पर निर्भरता को परिभाषित करने का समर्थन नहीं करता है और पैकेज मेटाडाटा को सही ढंग से पॉपुलेट करने के लिए कई सुविधा उपयोगिताओं को याद कर रहा है जो इसके द्वारा प्रदान किए गए हैंsetuptools। मानक पुस्तकालय के बाहर होने के कारण, सेटपूल भी पायथन के विभिन्न संस्करणों में एक अधिक सुसंगत विशेषता प्रदान करता है, और (इसके विपरीतdistutils),setuptoolsसभी समर्थित संस्करणों पर आगामी "मेटाडेटा 2.0" मानक प्रारूपों का उत्पादन करने के लिए अद्यतन किया जाएगा।यहां तक कि उन परियोजनाओं के लिए भी जो उपयोग करने का चयन करते हैं
distutils, जब पाइप ऐसी परियोजनाओं को सीधे स्रोत से स्थापित करता है (बजाय एक प्रीबिल्ट व्हील फ़ाइल से स्थापित करने के लिए), यह वास्तव मेंsetuptoolsइसके बजाय का उपयोग करके आपकी परियोजना का निर्माण करेगा ।
हालाँकि, विभिन्न प्रोजेक्ट की सेटअपफ़ॉर्म फ़ाइलों में देखने से पता चलता है कि यह वास्तविक मानक नहीं है। कई पैकेज अभी भी उपयोग करते हैं distutilsऔर जो समर्थन करते हैं वे setuptoolsअक्सर एक उदाहरण के setuptoolsसाथ मिश्रण करते distutilsहैं एक वापसी आयात करके:
try:
from setuptools import setup
except ImportError:
from distutils.core import setup
सेटअप लिखने का एक तरीका खोजने के प्रयास के बाद, जिसे दोनों द्वारा स्थापित किया जा सकता है setuptoolsऔर distutils। इसमें अक्सर त्रुटि-प्रवण निर्भरता जाँच के विभिन्न तरीके शामिल होते हैं, क्योंकि distutilsसेटअप फ़ंक्शन में निर्भरता का समर्थन नहीं करता है।
लोग अभी भी समर्थन करने के लिए अतिरिक्त प्रयास क्यों कर रहे हैं distutils- क्या तथ्य यह setuptoolsहै कि मानक पुस्तकालय में एकमात्र कारण नहीं है? इसके क्या फायदे हैं distutilsऔर क्या कोई सेटअप सेटअप फ़ाइल लिखने में कमियां हैं जो केवल समर्थन करती हैं setuptools।
setuptoolsएक बढ़ा हुआ विकल्प है, distutilsलेकिन ध्यान दें कि " अनुशंसित पाइप इंस्टॉलर सभी setup.py स्क्रिप्ट के साथ चलता है setuptools, भले ही स्क्रिप्ट केवल आयात करता होdistutils " ( स्रोत )
distutilsको वापस मर्ज कर दिया गया हैsetuptools, लेकिन ऐसी विरासत ऐप हैं जिनका उपयोग करने के लिए लिखा गया थाdistutilsऔर सही मानकों पर माइग्रेट करने के लिए शामिल लागतें हैं।