Я хотел бы разделить память между C ++ и Python.
Моя проблема:
Есть ли способ «отобразить» память, соответствующую переменным C ++, чтобы я мог получить доступ к данным из Python? Я не хочу копировать 6 ГБ данных на жесткий диск.
Первый путь: Я думаю, что более подходящий путь для вас ctypes. Вы можете создать общую библиотеку, а затем загрузить функции общей библиотеки в Python и заполнить все контейнеры данных, которые вы хотите в Python.
В Windows вы можете создать DLL, а в Linux — общую библиотеку .so.
Теперь это имеет преимущество в том, что это не зависит от вашей версии Python.
Второй путьЯ думаю, что это менее уместно, но вы можете заставить его работать, а это Расширение Python C. При этом вы можете вызывать контейнеры данных Python (PyObject
s) и заполните их внутри C.
Однако код, который вы здесь компилируете, всегда должен быть связан с библиотеками Python.
Какой использовать?:
Используя оба варианта, вы можете передавать огромные блоки памяти между C ++ и Python без необходимости каких-либо операций чтения / записи на диске.
Надеюсь это поможет.
Других решений пока нет …