में पायथन + numpy कोड एम्बेड करना मैं अजगर एम्बेडिंग का नया हूँ। मैं एक सी ++ कॉलबैक फ़ंक्शन (एक डीएल के अंदर) के अंदर पायथन + numpy कोड एम्बेड करने की कोशिश कर रहा हूंसी ++ डीएल कॉलबैक
जिस समस्या का सामना कर रहा हूं वह निम्नलिखित है। अगर मेरे पास है:
Py_Initialize();
// some python glue
// python invocation
Py_Finalize();
सब कुछ ठीक काम करता है।
लेकिन अगर मेरे पास है:
Py_Initialize();
_import_array(); //to initialize numpy C-API
// some python glue + numpy array object creation
// python invocation via PyObject_CallObject()
Py_Finalize();
यह दूसरी बार यह _import_array तक पहुँच जाता है पर दुर्घटनाओं(); (जिसका अर्थ है कि यह पहली कॉलबैक के लिए काम करता है)
यदि मैं इसके बजाय केवल एक बार पाइथन और numpy प्रारंभिकता और विनाशक में अंतिम रूप (अंतिम रूप से प्रारंभ/अंतिमकरण नहीं) करता हूं, तो कॉलबैक छोड़ते समय सब कुछ दुर्घटनाग्रस्त हो जाता है ..
समस्या यहाँ मैं अनुमान numpy है, लेकिन मुझे नहीं पता हल करने के लिए कि यह कैसे
आप पूरी तरह से नियंत्रित कर सकते हैं तो कैसे DLL बनाया गया है, मैं peronally distutils और बड़ा घूँट के लिए विवरण छोड़ना होगा:
यहाँ पर "एक DLL में सी ++ सिंगलटन" एक कड़ी है। यहां एक उदाहरण प्रोजेक्ट है (numpy के साथ इंटरफेसिंग): https://github.com/martinxyz/python/tree/master/realistic – maxy