मैंने अपने पालतू ओपन सोर्स प्रोजेक्ट RevitPythonShell (बिल्डिंग मॉडलिंग सॉफ्टवेयर ऑटोडस्क रेविट आर्किटेक्चर 2010 के लिए एक प्लगइन) में स्पष्ट पथ की कोशिश की है: code.interact()
STDIN
और STDOUT
के लिए .NET स्ट्रीम का उपयोग करने के लिए स्थापित आयरनपीथन इंजन के साथ। ये मैं फिर TextBox
नियंत्रण पर रीडायरेक्ट करता हूं। यह थोड़े काम करता है, लेकिन वास्तव में केवल एक बदसूरत हैक है।एक आवेदन में एक ग्राफिकल इंटरैक्टिव IronPython खोल कैसे एम्बेड करें?
मुख्य समस्या सभी शैल सामग्री को काम करने के लिए मिल रही है: इतिहास, संपादन, प्रतिलिपि & पेस्ट, ईओएफ, सिंटैक्स हाइलाइटिंग, टूल टिप्स इत्यादि के लिए ऊपर-तीर और नीचे तीर यह प्राप्त करने में बहुत अधिक काम करता है यह सही है, और यह वास्तव में समस्या नहीं है जिसे मैं हल करने की कोशिश कर रहा हूं (मैं रेविट में होस्ट किया गया एक इंटरैक्टिव खोल प्राप्त करने की कोशिश कर रहा हूं, सही शेल जीयूआई नहीं बना सकता)।
अगर यह .NET प्रोजेक्ट नहीं था, तो शायद मैं PyCrust/PyWrap का पुन: उपयोग करने में देखता हूं, लेकिन मुझे यकीन नहीं है कि यह WinForms प्रोजेक्ट से किया जा सकता है या नहीं। क्या .NET के लिए कुछ भी समान है?
क्या किसी ने कभी IConsole
इंटरफेस को कार्यान्वित किया है और मुझे एक उदाहरण दिखा सकता है कि मुझे क्या करना होगा? ऐसा लगता है कि यह जाने का उचित मार्ग होगा (code
मॉड्यूल का उपयोग करने के विपरीत), लेकिन मेरे जीवन के लिए मैं इसे समझ नहीं सकता। IronPython स्रोत कोड में कोई टिप्पणी नहीं है।
अद्यतन: कुछ सामानों को आजमाने के बाद, मैं अंततः शानदार IronLab कोड पर बस गया। इसमें वाक्यविन्यास हाइलाइटिंग और सभी के साथ एक उदाहरण खोल शामिल है। कोड एकीकृत और एकीकृत करने में आसान था। इसे एम्बेड करने के तरीके पर संकेतों पर RevitPythonShell कोड देखें।
नहीं वास्तव में एक अच्छा डिब्बाबंद समाधान ... इसलिए मैं यह एक टिप्पणी के रूप में छोड़ देंगे। आप SharDDevelop IDE प्रोजेक्ट में मैट वार्ड के पायथन कंसोल.cs स्रोत को देख सकते हैं। SharpDevelop \ src \ AddIns \ BackendBindings \ Python \ Python बाइंडिंग \ Project \ Src में देखें। इस कक्षा को तोड़ने के लिए यह एक बड़ी समस्या हो सकती है ताकि यह (और ICSharpCode.TextEditor) अन्य परियोजनाओं में उपयोग किया जा सके। लेकिन शायद यह आपको थोड़ा सा मदद करेगा। अपने बिल्ड सर्वर से शार्प डेवलपमेंट स्रोत डाउनलोड करें: http://build.sharpdevelop.net/BuildArtefacts या svn का उपयोग करें: svn: //svnmirror.sharpdevelop.net/sharpdevelop/branches/3.0/SharpDevelop – djlawler
शर्मिंदा मत हो;) यह अपने आप में एक बहुत अच्छा जवाब है - जैसे ही मैं ऐसा करने के लिए घूमता हूं, मैं इसे देखता हूं! –