2010-08-09 13 views
7

से एक पायथन मॉड्यूल को कॉल करना मैंने पायथन में एक मॉड्यूल बनाया जो लगभग दर्जन कार्यक्षमताओं को प्रदान करता है। हालांकि इसे ज्यादातर पायथन के भीतर से उपयोग किया जाएगा, विरासत उपयोगकर्ताओं का एक अच्छा अंश है जो इसे पर्ल से बुलाएगा।पर्ल

इस मॉड्यूल में प्लग बनाने का सबसे अच्छा तरीका क्या है? मेरे विचार कर रहे हैं:

  1. (, JSON RPC के माध्यम से कहते हैं) कमांड लाइन उपयोगिताओं के रूप में कार्य प्रदान करें और system कॉल
  2. सर्वर के कुछ प्रकार बनाने बनाने के लिए और RPC कॉल संभाल

किसी भी सलाह?

उत्तर

19

एक अन्य विकल्प Inline::Python का उपयोग करके सीधे अपनी पर्ल स्क्रिप्ट में पाइथन को रेखांकित करना है।

यह अन्य समाधानों की तुलना में सरल हो सकता है, और केवल एक अतिरिक्त मॉड्यूल की आवश्यकता है।

+0

इनलाइन :: अजगर काफी अच्छी तरह से काम करता है:

मेरा अनुमान है कि क्रम में इसका मतलब है हालांकि कुछ प्रकार के चर पारित करते समय कुछ अजीबता बनें। – GWW

+0

धन्यवाद। मुझे सभी उत्तरों पसंद आया, लेकिन यह बहुत पोर्टेबल लगता है। – Escualo

3

कमांड लाइन उपयोगिताओं के रूप में कार्य प्रदान करें और प्रणाली

वर्क्स कॉल वास्तव में अच्छी तरह से कर सकते हैं। इस तरह पाइथन (और पर्ल) जैसे प्रोग्राम उपयोग किए जाने के लिए हैं।

+0

सरल और अच्छी तरह से परीक्षण करने के लिए मुश्किल है, है ना? – dawg

+5

बेशक अगर उन्हें ऐसे माहौल में चलाने की ज़रूरत है जहां पाइथन दुभाषिया (अपेक्षित निष्पादन के समय #) की स्टार्टअप लागत बहुत अधिक है। एक उदाहरण के रूप में, एक ऐप या एक वेब सर्वर की तरह। जिस तरह से पर्ल एक स्थिति में उपयुक्त तरीके से इस्तेमाल किया जाना है। – DVK

+1

@ डीवीके: पाइथन विभिन्न तरीकों से उपयोग किए जा सकने वाले विभिन्न तरीकों से भी प्रयोग किया जा सकता है। क्या आप जानते हैं कि इस सवाल पर कौन सी स्थिति लागू होती है? –

9

संक्षेप में इनलाइन :: पायथन का उपयोग करने का सबसे आसान समाधान है। कमांड लाइन स्क्रिप्ट को कॉल करके बारीकी से पालन किया जाता है।

लंबे समय तक, आरपीसी कार्यक्षमता प्रदान करने के लिए सर्वर का उपयोग करके या केवल कमांड लाइन स्क्रिप्ट को कॉल करने से आपको सबसे भविष्य का सबूत समाधान मिल जाएगा।

क्यों?

इस तरह से बनें कि आप पर्ल या पायथन से बंधे नहीं हैं क्योंकि आपकी लाइब्रेरी द्वारा प्रदान की जाने वाली सेवाओं का उपभोग करने वाली भाषा बनाने के लिए उपयोग की जाने वाली भाषा है। या तो विधि एक स्पष्ट, भाषा स्वतंत्र इंटरफ़ेस बनाती है जिसका उपयोग आप जो भी विकास पर्यावरण अपनाने के साथ कर सकते हैं।

आपकी आवश्यकताओं के आधार पर प्रस्तुत किए गए विकल्पों में से कोई भी "सर्वश्रेष्ठ विकल्प" हो सकता है। समय के साथ आपकी जरूरतों के विकास के आधार पर, एक अलग विकल्प "सर्वश्रेष्ठ" के रूप में प्रकट किया जा सकता है।

कितनी बार आप विकास उपकरण बदल सकता हूँ:

इस मेरे दृष्टिकोण सवालों के एक जोड़े को पूछने के लिए किया जाएगा। आपने पर्ल से पायथन पर स्विच किया है। क्या आपने टीसीएल से शुरुआत की और पर्ल पर गए? क्या आप 1, 5 या 10 वर्षों में रोमांचक नई भाषा एक्स पर स्विच करने जा रहे हैं? यदि आप टूल 'अक्सर' (जो भी इसका मतलब है) को क्रॉस टूल संगतता पर जोर देते हैं।

कितनी तेजी से तेज़ है? क्या कमांड लाइन समाधान के लिए स्टार्ट अप टाइम ठीक है? क्या इनलाइन :: पायथन धीमी चीजें बहुत कम है (आप अभी भी एक पायथन दुभाषिया शुरू कर रहे हैं, यह सिर्फ आपके पर्ल दुभाषिया में एम्बेडेड है)?

इन सवालों के जवाब के आधार पर, मैं काम करने की सबसे सरल चीज़ करता हूं।, वहाँ कर सकते हैं

  1. इनलाइन :: अजगर
  2. कमांड लाइन स्क्रिप्ट
  3. बिल्ड एक RPC सर्वर