Разделить память между двумя интерпретаторами Python - PullRequest
0 голосов
/ 24 июня 2019

По причинам совместимости мне нужны два интерпретатора Python для запуска, мое программное обеспечение работает с MSYS2, но некоторые библиотеки не поддерживаются (pythonnet, genicam2) и должны запускаться непосредственно в Windows. Оба Python 3.7.

Мое программное обеспечение порождает подпроцесс следующим образом:

supbrocess.Popen("<path_to_python> module.py")

Для применения в машинном зрении мне нужно передать большие данные (изображения, полученные с камер) со второго переводчика на первый (работающий с MSYS2).

Я начал использовать mmap с анонимным отображением, но я не понимаю, каким образом подпроцесс должен обращаться к этой памяти, хотя в документации это выглядит прямо:

import mmap
import os

mm = mmap.mmap(-1, 13)
mm.write(b"Hello world!")

pid = os.fork()

if pid == 0:  # In a child process
    mm.seek(0)
    print(mm.readline())

    mm.close()

Как я могу позволить своему дочернему подпроцессу получать доступ к этой общей памяти, если я не использую os.fork?

EDIT:

После проверки os.fork доступен только в Unix. Так что это выглядит еще сложнее.

...