मैं स्कॉन्स और पायथन के लिए नया हूं। मैं सोच रहा था कि क्या एक अजगर लिपि के भीतर से स्कैन का आह्वान करने का कोई तरीका है।एक पायथन स्क्रिप्ट से स्कैन को आमंत्रित करना
मेरी पायथन लिपि उपयोगकर्ता से स्वीकार करती है, निर्देशिकाओं की एक सूची जहां कोड को संकलित करने के लिए कोड स्थित है (कुछ अन्य गैर-तुच्छ चीजों को करने के अलावा)। यह एक स्ट्रिंग भी उत्पन्न करता है जिसे निष्पादन योग्य स्कैन द्वारा नामित किया जाना है।
मैं इस जानकारी को अपनी पायथन स्क्रिप्ट से स्कैन करने के लिए पास करना चाहता हूं, और फिर स्कैन का आह्वान करता हूं। क्या ऐसा करने का कोई आसान तरीका है?
मैं निम्नलिखित संभावनाओं के बारे में सोच सकते हैं:
- उपयोग
subprocess.call("scons"...)
मुझे यकीन है कि नहीं कर रहा हूँ अगर SCons सभी जानकारी मैं आदेश पंक्ति तर्क - अजगर स्क्रिप्ट है के रूप में पारित करने के लिए की जरूरत को स्वीकार करता है एक फ़ाइल में लिखने । स्कैनस्क्रिप्ट फ़ाइल को पार्स करें और जानकारी पास हो गई है।
मैंने सीधे 'SCons.Script.main() 'को कॉल करने के लिए देखा, और फैसला किया कि यह इसके लायक नहीं है। मैं एक 'subprocess में कॉल लपेटने के लिए चला गया।मेरे उत्तर में उल्लिखित कमांड लाइन तर्कों को कॉल करें() 'आमंत्रण और हैंडलिंग करें। मुझे लगता है कि वास्तविक स्कॉन्स स्क्रिप्ट को बाईपास करने की कोशिश करने से चोट लगने की दुनिया हो सकती है :) – Brady
मुझे लगता है कि यह मेरे प्रश्न का उत्तर नहीं देता है: अगर मैं अपनी पाइथन लिपि को स्कॉन्स्क्रिप्ट से कॉल करता हूं, तो मैं इस बारे में जानकारी कैसे पास करूं कि मेरे पास _before_ scoking invons प्राप्त किया? –
क्या स्कैन से पहले अपनी स्क्रिप्ट को आमंत्रित करने की वास्तविक आवश्यकता है? आप स्कैनस्क्रिप्ट फ़ाइल से मॉड्यूल के रूप में अपनी स्क्रिप्ट आयात कर सकते हैं और फिर आवश्यकतानुसार आवश्यक इनपुट जमा कर सकते हैं। तकनीकी रूप से वही नहीं है, जहां तक उपयोगकर्ता का संबंध है, इसमें कोई अंतर नहीं है। यदि यह कोई विकल्प नहीं है, तो ब्रांडी द्वारा प्रस्तावित मार्ग एक व्यवहार्य समाधान है। –