2009-12-03 12 views
7

मेरे पास सभी अंडे हैं जो मेरे प्रोजेक्ट को निर्देशिका में प्री-डाउनलोड की आवश्यकता है, और मैं पर केवल उस निर्देशिका से संकुल इंस्टॉल करना चाहता हूं।'setup.py test' अंडा इंस्टॉल स्थान?

मेरी setup.cfg में मेरे पास है:

[easy_install] 
allow_hosts = None 
find_links = ../../setup 

मैं python setup.py develop चलाने के लिए और यह पाता है और सही ढंग से सभी संकुल स्थापित करता है।

परीक्षण के लिए, मेरे पास setup.py में निर्दिष्ट एक अतिरिक्त आवश्यकता है।

tests_require=["pinocchio==0.2"], 

यह अंडा भी ../../setup निर्देशिका में स्थानीय स्तर पर रहता है।

मैं python setup.py test चलाता हूं और यह निर्भरता को देखता है और अंडे को ../../setup में ठीक लगता है। हालांकि, अंडे के बाकी हिस्सों के साथ site-packages निर्देशिका के बजाय अंडे को वर्तमान निर्देशिका में स्थापित किया जाता है।

मैंने दोनों को setup.cfg और कमांड लाइन पर निर्दिष्ट करने का प्रयास किया है और न ही tests कमांड के लिए काम करना प्रतीत होता है।

मैं केवल install_requires सेक्शन पर निर्भरता जोड़ सकता हूं, लेकिन मैं स्थापित करना चाहता हूं और यदि संभव हो तो परीक्षण अलग-अलग हो।

मैं निर्भरता को tests_require अनुभाग में कैसे रख सकता हूं, लेकिन इसे site-packages निर्देशिका में स्थापित किया गया है?

उत्तर

3

बस स्रोत कोड (setuptools/command/test.py) को देखते हुए, ऐसा लगता है कि setup.py test को डिज़ाइन द्वारा कुछ भी इंस्टॉल नहीं करना चाहिए (यह परीक्षण कर रहा है, तो साइट पर कुछ भी क्यों डालें- संकुल?)। यह अंडे प्राप्त करने के लिए fetch_build_egg (setuptools/dist.py) का उपयोग करता है, जो वास्तव में एक स्थानीय easy_install करता है। मुझे संदेह है कि आप जो भी चाहते हैं उसे परीक्षण करने के लिए आप परीक्षण नहीं कर सकते हैं।

नोट्स/विचार: setuptools के साथ मेरा अनुभव यह है कि इसमें बग और अनियंत्रित व्यवहार हैं। (मुझे पता चला कि एक विशेष रूप से गंदा ट्रिप-अप यह था कि यह सॉफ्टलिंक्ड निर्देशिकाओं में प्रवेश नहीं करेगा, जब distutils होगा)।

मैं या तो ए की सिफारिश करता हूं) ऐसा नहीं कर रहा हूं। :), बी) easy_install पैकेज को कॉल करके फ़ाइल को मैन्युअल रूप से इंस्टॉल करना। या सी) setuptools प्रणाली में देख रहे हैं और शायद अपना खुद का आदेश जोड़ना। इसे समझना बहुत मुश्किल नहीं है, और इसे जानने में आपको बहुत मदद मिलेगी जब आप भविष्य में सेटअप टोपल्स हिक-अप प्राप्त करेंगे।

+0

आपकी प्रतिक्रिया के लिए धन्यवाद। जैसा कि आपने अनुशंसा की है, मैं लड़ाई सेटअप टूल्स को परेशान नहीं कर रहा हूं, और या तो ए) या बी)। – amrox

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