मेरा पायथन एप्लिकेशन इस प्रकार बनाया गया है कि कुछ कार्यक्षमता प्लगइन के रूप में उपलब्ध है। वर्तमान में प्लगइन आर्किटेक्चर बहुत आसान है: मेरे पास एक प्लगइन्स फ़ोल्डर/पैकेज है जिसमें कुछ पायथन मॉड्यूल शामिल हैं। इस प्रकार मैं प्रासंगिक प्लगइन लोड:py2exe संकलन कोड में असम्पीडित पायथन प्लगइन की गतिशील लोडिंग
plugin_name = blablabla
try:
module = __import__(plugin_name, fromlist='do_something')
except ImportError:
#some error handling ...
और उसके बाद निष्पादित करें:
try:
loans = module.do_something(id_t, pin_t)
except xxx:
# error handling
मैं एक Windows द्विआधारी py2exe का उपयोग करने के आवेदन संकलित करें। यह ठीक काम करता है, इसके अलावा यह तथ्य कि सभी प्लगइन्स बाइनरी में शामिल हैं (और होना चाहिए)। यह बहुत व्यावहारिक नहीं है, क्योंकि प्रत्येक नई प्लगइन के लिए, मुझे अपने आवेदन का एक नया संस्करण दोबारा बनाना और रिलीज़ करना होगा। यह बेहतर होगा अगर एक नई प्लगइन (यानी पायथन फ़ाइल) को कुछ एप्लिकेशन प्लगइन फ़ोल्डर में कॉपी किया जा सके, और फ़ाइल कोड में पायथन कोड को मेरे एप्लिकेशन द्वारा ऑन-द-फ्लाई का अर्थ दिया जा सकता है।
ऐसा करने का सबसे अच्छा तरीका क्या है?
(मेरे द्वारा चुने गए प्लगइन फ़ाइल की प्रत्येक पंक्ति को पढ़ने, और यह करने के लिए एक exec
statement लागू करने। लेकिन वहाँ हो सकता है बेहतर तरीके ... के लिया है, हालांकि)
उत्तर के लिए धन्यवाद। लेकिन क्या किसी को किसी को अपने कंप्यूटर पर पाइथन स्थापित करने की आवश्यकता नहीं होगी? (मैंने जो समाधान प्रस्तावित किया है, उसके लिए इसकी आवश्यकता होगी, अब मुझे लगता है कि) – Rabarberski
आप सही हैं, यह आपके एप्लिकेशन और बाहरी प्लगइन दोनों के लिए एक ही पायथन स्थापना होना चाहिए। मैं मानता हूं कि यह काफी परेशान है। –