2012-05-22 12 views
5

setup.py अंदर मैं कुछ इस तरह है:setup_require या test_require से संकुल की आवश्यकता के लिए एक अस्थायी निर्देशिका का उपयोग करने के लिए setuptools को मैं कैसे समझाऊं?

setup_requires=['nose>=1.0'], 
tests_require=[], 

समस्या यह है कि डाउनलोड करने और setup.py साथ निर्देशिका में इन मॉड्यूल खोल होगा जब मैं ./setup.py test चलाया जाता है।

इसके लिए मैं एक अस्थायी निर्देशिका का उपयोग करने के लिए इसे कैसे समझा सकता हूं, मैं इनके साथ स्रोत नियंत्रण प्रणाली को विनियमित नहीं करना चाहता हूं, और मैं बहुत सारे जोड़ना शुरू नहीं करना चाहता हूं और बहुत सारे पैटर्स को जोड़ना शुरू नहीं करना चाहता हूं।

उत्तर

1

यदि समस्या आपके प्रोजेक्ट का स्रोत पेड़ है तो आपको सेटअप टेस्ट के अंत में distutils द्वारा बनाई गई सभी "dist" और "build" निर्देशिकाओं को हटाने के लिए शायद एक स्क्रिप्ट बनाना चाहिए। डाउनलोड किए गए पैकेज आमतौर पर आपके स्रोत पेड़ में * .gg फ़ोल्डर्स होते हैं।

आप अपने वितरण को प्रदूषित नहीं कर रहे हैं।

setuptools प्रलेखन से:

setup_requires नहीं स्वचालित रूप से प्रणाली है जहाँ सेटअप स्क्रिप्ट रन किया जा रहा है पर स्थापित किया जाएगा। वे सेटअप निर्देशिका में बस डाउनलोड किए जाते हैं यदि वे पहले से ही स्थानीय रूप से उपलब्ध नहीं हैं। यदि आप चाहते हैं जब सेटअप स्क्रिप्ट रन है उन्हें स्थापित होने के लिए, साथ ही उपलब्ध कराया जा रहा है, तो आप उन्हें install_requires और setup_requires में जोड़ना चाहिए।)

और

tests_require यदि आपका प्रोजेक्ट के परीक्षणों को एक या अधिक अतिरिक्त पैकेजों की आवश्यकता होती है, इसके अलावा इसे इंस्टॉल करने के लिए आवश्यक है, आप उन्हें निर्दिष्ट करने के लिए विकल्प का उपयोग कर सकते हैं। यह निर्दिष्ट स्ट्रिंग्स की एक स्ट्रिंग या सूची होनी चाहिए जो पैकेज के परीक्षणों के लिए रन पर अन्य वितरण मौजूद होने की आवश्यकता है। जब आप टेस्ट कमांड चलाते हैं, तो setuptools इन्हें प्राप्त करने का प्रयास करेगा (यहां तक ​​कि EasyInstall का उपयोग करके उन्हें डाउनलोड करने के लिए भी जा रहा है)। नोट कि इन आवश्यक परियोजनाओं को सिस्टम पर स्थापित नहीं किया जाएगा जहां परीक्षण चलाए जाते हैं, लेकिन केवल प्रोजेक्ट के सेटअप निर्देशिका में डाउनलोड किया जाता है यदि वे पहले से ही स्थानीय रूप से स्थापित नहीं हैं।

http://packages.python.org/distribute/setuptools.html

आप कुछ पैकेज स्थापित किया है और आप इसे दूर करने के लिए, सिर्फ अपने अजगर वितरण के सबफ़ोल्डर "साइट-संकुल" में अपने पैकेज खोजने के लिए और इसे हटा की जरूरत है। अंत में आसान-install.pth फ़ाइल में पैकेज संदर्भ को हटा दें जो आमतौर पर उसी "साइट-पैकेज" dir में स्थित होता है।

+0

धन्यवाद। जो भी मैं खोज रहा था वह था जब मैं 'setup.py' चलाता हूं, जो भंडार की जड़ में है, तो मेरी कार्यशील प्रतिलिपि को प्रदूषित नहीं करना है।इसलिए मैं इन फ़ाइलों को कहीं और बनाने के लिए दृढ़ सेटअपtools के रास्ते की तलाश में हूं। – sorin

+0

सुधारित। मुझे लगता है कि आपको एक स्क्रिप्ट के साथ जाना चाहिए! –

0

सेटअपtools 7.0 से शुरू, setup_requires, tests_require के लिए लोड की गई क्षणिक निर्भरता, और इसी तरह ./.ggs में स्थापित हैं। मैं दृढ़ता से प्रोत्साहित करता हूं कि आपकी वैश्विक अनदेखी सूची में।

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

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