Tôi mới sử dụng tính năng nhúng python. Tôi đang cố gắng nhúng mã python + numpy bên trong hàm gọi lại C++ (bên trong một dll)Nhúng mã python + numpy vào C++ dll callback
vấn đề mà tôi đang gặp phải là như sau. nếu tôi có:
Py_Initialize();
// some python glue
// python invocation
Py_Finalize();
mọi thứ đều hoạt động tốt.
nhưng nếu tôi có:
Py_Initialize();
_import_array(); //to initialize numpy C-API
// some python glue + numpy array object creation
// python invocation via PyObject_CallObject()
Py_Finalize();
này treo ở lần thứ hai nó đạt _import_array(); (có nghĩa là nó hoạt động cho lần gọi lại đầu tiên)
nếu tôi thay thế khởi tạo chỉ một lần và kết thúc trong trình phá hủy (do đó không phải lúc khởi tạo/hoàn tất), mọi sự cố khi rời khỏi cuộc gọi lại.
vấn đề ở đây tôi đoán là numPy, nhưng tôi không biết làm thế nào để giải quyết nó
Nếu bạn hoàn toàn có thể kiểm soát cách các DLL được xây dựng, tôi sẽ peronally rời các chi tiết để distutils và uống một lân. Đây là một dự án ví dụ (giao tiếp với numpy): https://github.com/martinxyz/python/tree/master/realistic – maxy