2013-10-18 6 views
10

जब एक स्रोत वितरण बनाने अजगर के setuptools (python setup.py sdist) का उपयोग कर, मैं लाइन से युक्त एक MANIFEST.in फ़ाइल उपयोग कर रहा हूँ:setupIFols MANIFEST.in में symlinks को अनदेखा करें?

recursive-include mypackage

क्योंकि मैं mypackage निर्देशिका के अंदर कुछ गैर मॉड्यूल फ़ाइलों को शामिल करना चाहते हैं। हालांकि, माइपैकेज निर्देशिका के तहत भी प्रतीकात्मक लिंक हैं जिनके लक्ष्य मैं अपने स्रोत वितरण में शामिल नहीं करना चाहता हूं। MANIFEST.in के अंदर "सिमलिंक को अनदेखा करें" निर्दिष्ट करने का कोई तरीका है?

मुझे पता है ... मुझे शायद उन सिम्लिंक नहीं होना चाहिए।

+0

शायद आप 'MANIFEST_template.in' को' MANIFEST.in' में बदलकर 'setup.py' की शुरुआत में फ़ंक्शन चलाकर उन्हें बहिष्कृत कर सकते हैं? [इस पोस्ट] से जानकारी के साथ सिम्लिंक के लिए स्कैनिंग (http://stackoverflow.com/questions/17889368/if-path-is-symlink-to-another-path)। हालांकि, ऐसा कोई विकल्प है, तो अच्छा होगा। – greschd

+2

मेरे ज्ञान में सबसे अच्छा करने के लिए, अपने पैकेज में सबकुछ शामिल करने के लिए 'रिकर्सिव-मायपैकेज शामिल करें' का उपयोग करके बचा जाना चाहिए। यह उन कई चीजों को उठा सकता है जिन्हें आप वास्तव में अपने वितरण में शामिल नहीं करना चाहते हैं। यदि आप कम और विशेष हैं, या अन्यथा उन्हें विस्तार या अन्य फ़ाइल नाम पैटर्न, जैसे अन्यथा शामिल करना चाहिए, तो आपको विशिष्ट फ़ाइलों को सूचीबद्ध करना चाहिए। 'रिकर्सिव-मायपैकेज * .mydataformat' शामिल करें। – taleinat

+1

यदि आप सिम्लिंक को जानते हैं तो आप 'MANIFEST.in' में 'रिकर्सिव-इन' के बाद 'बहिष्कृत' को स्पष्ट रूप से जोड़ सकते हैं - निर्देशों का मूल्यांकन क्रम में किया जाता है। – fpbhb

उत्तर

3

Distutils सिम्लिंक के किसी भी विशेष हैंडलिंग की पेशकश नहीं करता है। आप distutils code देख सकते हैं और देख सकते हैं कि MANIFEST.in फ़ाइल की प्रसंस्करण os.listdir का उपयोग करके सरल पैटर्न मिलान कर रही है, सिमलिंक के लिए किसी भी विशेष हैंडलिंग के बिना।

+3

आप इस उत्तर को यह स्पष्ट करने के लिए संपादित कर सकते हैं कि इसका मतलब है कि मेरे मूल प्रश्न के लिए "नहीं" - डिस्ट्यूट को सिम्लिंक को अनदेखा करने के लिए नहीं कहा जा सकता है क्योंकि हुड के तहत यह उनसे अवगत नहीं है। – foobarbecue

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