2011-06-04 21 views
14

यह एक अजीब सवाल की तरह लगता है, इसलिए मैं पहले के आसपास की परिस्थितियों को समझाऊंगा।पाइथन के अंदर लुआ को कैसे एम्बेड करें?

असल में, मेरे पास पाइथन में लिखी गई एक 3 डी गेम डेवलपमेंट किट है, जो अपने आप से उत्कृष्ट रूप से काम करती है। हालांकि, मेरे अधिकांश उपयोगकर्ताओं का उपयोग लुआ को एक स्क्रिप्टिंग भाषा के रूप में उपयोग करने के लिए किया जाएगा, इसलिए मैंने लुआ-पायथन बाइंडिंग को देखना शुरू कर दिया।

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

क्या कोई और विकल्प जानता है? धन्यवाद!

पीएस: मैंने पहले ही पागल पाइथन की कोशिश की है, और लक्स बहुत पुराना है।

+0

हाँ, मेरा पहला सवाल :)। मैं कई वर्षों से स्टैक ओवरव्लो के आसपास "गुप्त" रहा हूं, हालांकि ... – DangerOnTheRanger

+0

क्या आपको कंप्यूटर्स लिखना पसंद है? –

+0

दरअसल, मेरे अपने शुद्ध-पायथन लूआ दुभाषिया _is_ मेरी फॉलबैक लिखना। हालांकि, अगर लुपा के कोई विकल्प नहीं आते हैं, तो मैं बस लुपा के साथ रहूंगा। – DangerOnTheRanger

उत्तर

4

आपको lunatic-python में देखना चाहिए यह पाइथन और लुआ के बीच एक 2 रास्ता पुल है।

साइट बंद एक उदाहरण दिखाता है कि यह कैसे प्राकृतिक और आसान है:

>>> import lua 
>>> lg = lua.globals() 
>>> lg.string 
<Lua table at 0x81c6a10> 
>>> lg.string.lower 
<Lua function at 0x81c6b30> 
>>> lg.string.lower("Hello world!") 
'hello world!' 
+2

जैसा कि मैंने अपने प्रश्न में कहा था, मैंने पहले से ही पागल पाइथन की कोशिश की है। मेरे साथ मुख्य समस्या यह है कि यह बहुत मोनोल है इथिक: यदि वे केवल 'lua.run' के साथ चलते हैं तो एकाधिक स्क्रिप्ट पूरी तरह से ग्लोबल्स साझा करते हैं। यही कारण है कि मैंने लुपा को चुना; एकाधिक लुआ दुभाषिया उदाहरण मौजूद हो सकते हैं। – DangerOnTheRanger