2011-10-14 15 views
5

का उपयोग करके एक पायथन स्क्रिप्ट लाइन-बाय-लाइन निष्पादित करना मेरा लक्ष्य आखिरकार एक पायथन स्क्रिप्ट निष्पादित करने के लिए है जो मेरे सी ++ प्रोग्राम में मूल्यों का उपयोग करता है, एक समय में एक पंक्ति, मेरे सी ++ कार्यक्रम में निष्पादन को वापस करने में पायथन लिपि अभी, मैं एक समय में अपनी लिपि एक पंक्ति में पाइथन दुभाषिया को खिलाने का प्रयास कर रहा हूं। लेकिन यह एक संदर्भ चाहता है, और मुझे नहीं पता कि इसे कैसे बनाया जाए। क्या कोई मुझे कुछ अच्छे ट्यूटोरियल पर इंगित कर सकता है (दस्तावेज इस के लिए बहुत अच्छा नहीं है)।सी ++ पायथन एपीआई

मैंने उस उत्तर का चयन किया जो मेरे प्रश्न का सबसे करीबी उत्तर देता है, लेकिन मेरा मानना ​​है कि यह कुछ अनुप्रयोगों के लिए पर्याप्त नियंत्रण नहीं हो सकता है। एक उत्तर जो उन अनुप्रयोगों के लिए काम करता है, में पाइथन एपीआई में निम्न-स्तरीय कॉल शामिल हो सकती हैं। अगर आपके पास ऐसा उत्तर है जो निष्पादन पर अधिक नियंत्रण प्रदान करता है तो कृपया प्रश्न का उत्तर दें।

मैंने इस के बाद एक और सवाल पूछा, क्योंकि मुझे बाद में विभिन्न समस्याओं का सामना करना पड़ा जो बहुत करीबी से संबंधित हैं। लिंक: Python C API - Stopping Execution (and continuing it later)

उत्तर

3

मुझे लगता है कि एक समय में एक स्क्रिप्ट एक पंक्ति को खिलाना मुश्किल होगा। निष्पादन की प्रत्येक पंक्ति पर लागू एक फ़ंक्शन सेट करने के लिए sys.settrace() पर देखें। आप इसे थोड़ा अलग रूप में PyEval_SetTrace का उपयोग करके सी एपीआई में भी सेट कर सकते हैं।

+0

यह अच्छा लगता है। मैं इसे देख लूंगा। पता नहीं था कि एक निशान क्या था। धन्यवाद। – Miles

+0

AWSOME। बहुत बहुत धन्यवाद! प्रश्न का पर्याप्त उत्तर दिया गया। – Miles

1

मुझे 100% यकीन नहीं है कि मैं आपके लक्ष्य को पूरी तरह से समझता हूं, लेकिन कुछ 8 महीने पहले मैं कुछ ऐसा करना चाहता था। मैं पाइथन स्क्रिप्ट से अपने सी ++ एप्लिकेशन को ड्राइव करने में सक्षम होना चाहता था। मैं Win32, Qt, gcc पर था। यह पता चला है कि इन दिनों जीडीबी, जीसीसी के लिए डीबगर, पायथन के माध्यम से लिपि जा सकते हैं। यह मुझे बहुत सी पढ़ाई और काम के कुछ दिन ले गया, लेकिन यह अच्छी तरह से काम किया। मुझे अपने सी ++ स्रोतों में कोई अतिरिक्त कोड जोड़ने की ज़रूरत नहीं थी!

+0

मैं इसे देख लूंगा। अगर यह काम करता है, तो मैं हल हो जाऊंगा। – Miles

+0

क्या जीडीबी रनटाइम पर स्क्रिप्ट स्वीकार कर सकता है और रिलीज बिल्ड में शामिल किया जा सकता है? – Miles

+0

उपरोक्त लड़के के पास समाधान था: पायथन एपीआई का एक समाधान था जो प्रोग्रामिंग में अनुभवहीनता के कारण अंधेरा था: पता नहीं था कि एक डीबग ट्रेस क्या था। फिर भी धन्यवाद। – Miles

0

अच्छी तरह से मैं आपको बताता हूं .. मुझे लगता है कि अपनी पाइथन स्क्रिप्ट को C++ ऐप में परिवर्तित करना सबसे अच्छा काम है। यह आपके स्रोत में एम्बेड करने के लिए काम करने और उपयोगी कोड कैसे होगा।
यदि आपका सी ऐप इतना बड़ा नहीं है, तो शायद आप पाइथन के लिए सी-एक्सटेंशन बनाना पसंद करते हैं और पाइथन कोड को मुख्य ऐप में बदलना पसंद करते हैं ..
किसी भी तरह से, मैं इसे साइथन में करूँगा। यदि आप चाहें तो यह काम करने के लिए निम्न प्रश्न का उपयोग कर सकते हैं: Convert Python program to C/C++ code?

+0

मैं बस अपने पायथन कोड को पोर्ट नहीं करना चाहता हूं। मैं इसे बनाने की कोशिश कर रहा हूं इसलिए मैं अपनी प्रारंभिक पोस्ट में वर्णित फैशन में, वास्तविक समय में अपने प्रोग्राम द्वारा पढ़ी जाने वाली स्क्रिप्ट लिख सकता हूं। – Miles

संबंधित मुद्दे