2012-05-23 8 views
5

मेरे पास एक प्रोग्राम है जो पैकेज सूचकांक से dateutil का उपयोग करता है। मैं अपनी उपस्थिति के लिए setup.py जांचना चाहता हूं और easy_install का उपयोग करके इसे प्राप्त करने का प्रयास करना चाहता हूं यदि यह वहां नहीं है।पायथन 3.x distutils का उपयोग कर एक पैकेज की आवश्यकता और स्थापित करने के लिए कैसे?

The documentation for distutils इंगित करने के लिए इस setup() में requires कीवर्ड का उपयोग किया जा सकता है कि लगता है, लेकिन जब मैं कोशिश, यह एक चेतावनी देने या आवश्यक पैकेज की स्थापना के बिना dateutil के बिना एक सिस्टम पर स्थापित करता है।

Google पर एकमात्र चीज़ जो मुझे मिल सकती थी वह this blog post about the same issue था जिसका कोई जवाब नहीं था।

क्या मैं distutils गलत उपयोग कर रहा हूं? क्या मुझे distutils.command.install उपclass करने की आवश्यकता है और खुद को जांच/स्थापित करना है?

उत्तर

4

निर्भरता की स्वचालित डाउनलोड setuptools द्वारा पेश की गई एक विशेषता है जो विशेष रूप से install_requires तर्क में distutils पर एक तृतीय-पक्ष ऐड-ऑन है। अधिक जानकारी के लिए setuptools documentation देखें।

एक और विकल्प requirements.txt फ़ाइल pip के साथ easy_install को पैकेज इंस्टॉलर के रूप में उपयोग करने के बजाय उपयोग करना है। pip अब अनुशंसित इंस्टॉलर बन गया है; अधिक जानकारी के लिए Python Packaging User Guide देखें।

अद्यतन [2015-01]: इस उत्तर के पिछले संस्करण को setuptools का कांटा संदर्भित किया गया है। distribute कांटा तब से एक नए सक्रिय setuptools प्रोजेक्ट में विलय कर दिया गया है। distribute अब मर चुका है और अब इसका उपयोग नहीं किया जाना चाहिए। setuptools और pip अब बहुत सक्रिय रूप से बनाए रखा और समर्थन पायथन 3.

+0

की आवश्यकता है distutils में तर्क व्यर्थ है और अप्रयुक्त, आपको पीईपी 345 का व्यापक रूप से उपयोग नहीं होने तक पीपी आवश्यकता फाइलों या setuptools 'install_requires तर्क का उपयोग करना होगा (यह एक नए नाम के साथ आधिकारिक रूप से समर्थित है, स्थापित करता है: आवश्यक-dist; distutils2 इसका समर्थन करता है)। –

+0

एनबी: यह टिप्पणी पुरानी हो गई है; वितरण और सेटअपtools विलय हो गया है। Setuptools अब पूर्ण 3.x समर्थन है। – Kevin

+0

@ केविन, अनुस्मारक के लिए धन्यवाद; मूल उत्तर लिखा गया था क्योंकि बहुत कुछ बदल गया है। मैंने दुनिया की एक और वर्तमान स्थिति को प्रतिबिंबित करने के लिए उत्तर अपडेट किया है: वितरण और सेटअपटोल का विलय, distutils2 विकास का अंत, आधिकारिक पायथन पैकेज इंस्टॉलर के रूप में 'पीआईपी' का आशीर्वाद, और नया 'पायथन पैकेजिंग उपयोगकर्ता Guide'। –

0

सेटअप समारोह में तर्क install_requires से distutils, अच्छी तरह से मेरे लिए काम ही अगर मैं sdist वितरण बनाने के लिए, की तरह कर रहे हैं: python setup.py sdist

+0

'install_requires' ** ** ** distutils.core.setup' का तर्क नहीं है यह एक [वितरण में अतिरिक्त तर्क - setuptools] है (http://pythonhosted.org/distribute/setuptools.html#new-and- बदले गए सेटअप-कीवर्ड) ताकि आपको 'सेटअप' के वितरण संस्करण का उपयोग करने की आवश्यकता हो क्योंकि @Ned ने पहले कहा था। आप पाइथन में [यह जवाब जो पैकेजिंग मॉड्यूल की स्थिति का वर्णन करते हैं] [http://stackoverflow.com/a/14753678/965798) को भी देख सकते हैं। – marcz

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