मैं एक पायथन एप्लिकेशन से सी लाइब्रेरी को कॉल करना चाहता हूं। मैं संपूर्ण API को लपेटना नहीं चाहता, केवल वही फ़ंक्शन और डेटाटाइप्स जो मेरे मामले के लिए प्रासंगिक हैं। जैसा कि मैंने इसे देखा, मेरे पास तीन विकल्प हैं:
- सी। में एक वास्तविक विस्तार मॉड्यूल बनाएँ। संभवतः ओवरकिल करें, और मैं भी विस्तार लेखन सीखने से बचना चाहूंगा।
- C लाइब्रेरी से पायथन तक संबंधित भागों को उजागर करने के लिए साइथन का उपयोग करें ।
ctypes
बाहरी पुस्तकालय के साथ संवाद करने के लिए , पायथन में पूरी बात करें ।
मुझे यकीन नहीं है कि 2) या 3) बेहतर विकल्प है। 3) का लाभ यह है कि ctypes
मानक पुस्तकालय का हिस्सा है, और परिणामी कोड शुद्ध पायथन होगा - हालांकि मुझे यकीन नहीं है कि वास्तव में यह कितना बड़ा है।
या तो विकल्प के साथ अधिक फायदे / नुकसान हैं? आप किस दृष्टिकोण की सलाह देते हैं?
संपादित करें: आपके सभी उत्तरों के लिए धन्यवाद, वे किसी के लिए एक अच्छा संसाधन प्रदान करते हैं जो कुछ ऐसा ही करना चाहते हैं। निर्णय, निश्चित रूप से, अभी भी एकल मामले के लिए किया जाना है - कोई भी नहीं है "यह सही बात है" उत्तर का प्रकार। अपने खुद के मामले के लिए, मैं शायद ctypes के साथ जाऊंगा, लेकिन मैं किसी अन्य परियोजना में साइथन को आज़माने के लिए भी उत्सुक हूं।
एक भी सच्चा उत्तर नहीं होने के कारण, किसी को स्वीकार करना कुछ मनमाना है; मैंने FogleBird के उत्तर को चुना क्योंकि यह ctypes में कुछ अच्छी जानकारी प्रदान करता है और यह वर्तमान में सबसे अधिक मतदान वाला उत्तर भी है। हालांकि, मैं एक अच्छा अवलोकन प्राप्त करने के लिए सभी उत्तरों को पढ़ने का सुझाव देता हूं।
एक बार फिर धन्यवाद।